[Getdp] Problem with cygwin installed getdp on windows

Lars Rindorf lhr at com.dtu.dk
Tue Feb 5 20:15:52 CET 2008


Dear Bernhard
 
Thanks for the advice. With your help and a day of hard work I managed to track down the error. The error originates in the jacobian, but it is not truely an error in getdp. The current compilation is very strict in the interpretation of the Jacobian. In the getdp for windows that can be downloaded from geuz.org the program is very tolerant to incorrect jacobians, such as the one in EigenvaluesWire (in the model gallery) where the Jacobian is specified as 'Lin' for both line and points, even though it should be 'Vol' for the line and 'Sur' for the points according to the manual. The current compilation is much more stringent. Unfortunately, the current compilation does not have any error handling, and thus the commando prompt simply freezes without any indication of the error. That said, I must admit that I prefer the stringent approach. 
 
By the way: has anyone worked on parallelization? A colleague of mine is very interested in working on the subject. He said that petsc is easy to parallelize. Is this true? 
 
KR, Lars 
 
 
 
________________________________

From: Bernhard Kubicek [mailto:bernhard.kubicek at arsenal.ac.at]
Sent: Tue 2/5/2008 8:58 AM
To: Lars Rindorf
Cc: getdp at geuz.org
Subject: Re: [Getdp] Problem with cygwin installed getdp on windows



Not being an expert on debugging, but it seems you compiled getdp with
enabled debugging (-g flag). In case there is gnu debug (gdb) you could
execute "gdp /path/to/getdp --args getdp -pro ...", enter "run"  and
then use "backtrace" to find the code-line in which getdp crashed.

This would be probably very helpful for finding the reasons.

However, I have to add that I experienced some strange behavior with
getdp, when I compiled it with gcc 3.4.x using auto-vectorization in
ubuntu 7.10 on an intel xeon:
 ---variables file---
# Compiler flags
C_FLAGS=-DHAVE_GSL -Wall -O3 -march=pentium4 -mtune=pentium4 -pipe
-fomit-frame-pointer -msse3 -mfpmath=sse -funroll-all-loops -ffast-math
-ftree-vectorize -ftree-vectorizer-verbose=3
C_PARSER_FLAGS=$C_FLAGS
F77_FLAGS=$C_FLAGS
--------------
On some meshes it worked, on some it didn't, I even found the line at
which it crashed, but couldn't figure out any reason.  Without the
latter two vectorization flags it seems to work.
But this can also quite probably be a bug of gcc....
On Cygwin I remember something that I had to build gsl by hand to
compile getdp, but that was quite a while ago..

very nice greetings,
 Bernhard


On Mon, 2008-02-04 at 21:38 +0100, Lars Rindorf wrote:
> Dear all
> 
> I have chosen to compile getdp from the source using cygwin on my xp system. Cygwin has the necessary packages, including gsl. The compiled getdp works fine except for a freak error. I can not use 0-forms. All other forms work fine. If I try to use the 0 form the commando prompt freezes with no error code. The Getdp and gmesh windows still work fine. If the 0-form is changed to e.g. a Form1P, everything works as usual. The same is valid if I try to evaluate a scalar function on a line. I know it may difficult for you to explain this error if you can not reproduce it yourself, but do you have any ideas where to look for the error? The installation is as follows below (+ the config.status and config.log are attached):
> 
> Does anyone knows what is the problem?
> 
> Thanks! Lars
> 
> Output:
> $  ./configure
> checking for gcc... gcc
> checking for C compiler default output file name... a.exe
> checking whether the C compiler works... yes
> checking whether we are cross compiling... no
> checking for suffix of executables... .exe
> checking for suffix of object files... o
> checking whether we are using the GNU C compiler... yes
> checking whether gcc accepts -g... yes
> checking for gcc option to accept ANSI C... none needed
> checking for g77... g77
> checking whether we are using the GNU Fortran 77 compiler... yes
> checking whether g77 accepts -g... yes
> checking how to run the C preprocessor... gcc -mno-cygwin -E
> checking for ranlib... ranlib
> checking for ar... /usr/bin/ar
> checking for main in -lm... yes
> checking for dasum in -lblas... yes
> checking for dbdsqr in -llapack... yes
> checking for main in -lgslcblas... yes
> checking for main in -lgsl... yes
> configure: creating ./config.status
> config.status: creating variables
> ********************************************************************
> GetDP is configured for
> - OS               : CYGWIN_NT-5.1-no-cygwin
> - C compiler       : gcc -mno-cygwin -g -O2  -DHAVE_BLAS_LAPACK -DHAVE_ARPACK -DHAVE_GSL
> - Fortran compiler : g77 -mno-cygwin -g -O2
> - Linker           : g77 -mno-cygwin
> - Solver           : -DHAVE_SPARSKIT -DHAVE_ILU_FLOAT
> ********************************************************************
> To fine-tune the configuration, edit the 'variables' file
> ********************************************************************
> $ make
> make[1]: Entering directory `/cygdrive/c/Documents and Settings/lhr/My Documents/getPD/source2/getdp-1.2.1/Main'
> make[1]: `../lib/libMain.a' is up to date.
> make[1]: Leaving directory `/cygdrive/c/Documents and Settings/lhr/My Documents/getPD/source2/getdp-1.2.1/Main'
> make[1]: Entering directory `/cygdrive/c/Documents and Settings/lhr/My Documents/getPD/source2/getdp-1.2.1/Parser'
> make[1]: `../lib/libParser.a' is up to date.
> make[1]: Leaving directory `/cygdrive/c/Documents and Settings/lhr/My Documents/getPD/source2/getdp-1.2.1/Parser'
> make[1]: Entering directory `/cygdrive/c/Documents and Settings/lhr/My Documents/getPD/source2/getdp-1.2.1/Post'
> make[1]: `../lib/libPost.a' is up to date.
> make[1]: Leaving directory `/cygdrive/c/Documents and Settings/lhr/My Documents/getPD/source2/getdp-1.2.1/Post'
> make[1]: Entering directory `/cygdrive/c/Documents and Settings/lhr/My Documents/getPD/source2/getdp-1.2.1/Function'
> make[1]: `../lib/libFunction.a' is up to date.
> make[1]: Leaving directory `/cygdrive/c/Documents and Settings/lhr/My Documents/getPD/source2/getdp-1.2.1/Function'
> make[1]: Entering directory `/cygdrive/c/Documents and Settings/lhr/My Documents/getPD/source2/getdp-1.2.1/Integration'
> make[1]: `../lib/libIntegration.a' is up to date.
> make[1]: Leaving directory `/cygdrive/c/Documents and Settings/lhr/My Documents/getPD/source2/getdp-1.2.1/Integration'
> make[1]: Entering directory `/cygdrive/c/Documents and Settings/lhr/My Documents/getPD/source2/getdp-1.2.1/GeoData'
> make[1]: `../lib/libGeoData.a' is up to date.
> make[1]: Leaving directory `/cygdrive/c/Documents and Settings/lhr/My Documents/getPD/source2/getdp-1.2.1/GeoData'
> make[1]: Entering directory `/cygdrive/c/Documents and Settings/lhr/My Documents/getPD/source2/getdp-1.2.1/DofData'
> make[1]: `../lib/libDofData.a' is up to date.
> make[1]: Leaving directory `/cygdrive/c/Documents and Settings/lhr/My Documents/getPD/source2/getdp-1.2.1/DofData'
> make[1]: Entering directory `/cygdrive/c/Documents and Settings/lhr/My Documents/getPD/source2/getdp-1.2.1/Numeric'
> make[1]: `../lib/libNumeric.a' is up to date.
> make[1]: Leaving directory `/cygdrive/c/Documents and Settings/lhr/My Documents/getPD/source2/getdp-1.2.1/Numeric'
> make[1]: Entering directory `/cygdrive/c/Documents and Settings/lhr/My Documents/getPD/source2/getdp-1.2.1/DataStr'
> make[1]: `../lib/libDataStr.a' is up to date.
> make[1]: Leaving directory `/cygdrive/c/Documents and Settings/lhr/My Documents/getPD/source2/getdp-1.2.1/DataStr'
> make[1]: Entering directory `/cygdrive/c/Documents and Settings/lhr/My Documents/getPD/source2/getdp-1.2.1/FMM'
> make[1]: `../lib/libFMM.a' is up to date.
> make[1]: Leaving directory `/cygdrive/c/Documents and Settings/lhr/My Documents/getPD/source2/getdp-1.2.1/FMM'
> make[1]: Entering directory `/cygdrive/c/Documents and Settings/lhr/My Documents/getPD/source2/getdp-1.2.1/Sparskit'
> make[1]: `../lib/libSparskit.a' is up to date.
> make[1]: Leaving directory `/cygdrive/c/Documents and Settings/lhr/My Documents/getPD/source2/getdp-1.2.1/Sparskit'
> make[1]: Entering directory `/cygdrive/c/Documents and Settings/lhr/My Documents/getPD/source2/getdp-1.2.1/Arpack'
> make[1]: `../lib/libArpack.a' is up to date.
> make[1]: Leaving directory `/cygdrive/c/Documents and Settings/lhr/My Documents/getPD/source2/getdp-1.2.1/Arpack'
> g77 -mno-cygwin -o bin/getdp -Llib -lMain -lParser -lPost -lFunction -lIntegration -lGeoData -lDofData -lNumeric -lSparskit -lDataStr -lFMM -lArpack -llapack -lblas -lwsock32 -lgsl -lgslcblas -lm
>
> _______________________________________________
> getdp mailing list
> getdp at geuz.org
> http://www.geuz.org/mailman/listinfo/getdp