Hello again, My installation on my desktop seems to work well.
I am having problems with my installation of petsc on my mac though. It seems to go through the installation alright and even shows me the nice graph of the performance. I used, ./configure --with-scalar-type=complex --with-cc=clang --with-cxx=clang++ --with-fc=gfortran --with-c2html=0 --download-mpich However, when I try compiling the main.cpp I get an error, which I copied below. I know this should work and wonder what my petsc installation is not finding. Any suggestions? Cheers, Francis TEST_MPI fpoulin$ make all -s clang: warning: argument unused during compilation: '-L/Users/fpoulin/software/petsc/lib' clang: warning: argument unused during compilation: '-L/Users/fpoulin/software/petsc/darwin10.6.0-c-debug/lib' In file included from main.cpp:17: In file included from /Users/fpoulin/software/petsc/include/petsc.h:5: In file included from /Users/fpoulin/software/petsc/include/petscbag.h:4: In file included from /Users/fpoulin/software/petsc/include/petscsys.h:366: /Users/fpoulin/software/petsc/include/petscmath.h:562:10: error: use of undeclared identifier 'cpow'; did you mean 'pow'? return PetscPowScalar(base,cpower); ^ /Users/fpoulin/software/petsc/include/petscmath.h:252:31: note: expanded from macro 'PetscPowScalar' #define PetscPowScalar(a,b) PetscPowComplex(a,b) ^ /Users/fpoulin/software/petsc/include/petscmath.h:176:38: note: expanded from macro 'PetscPowComplex' #define PetscPowComplex(a,b) cpow(a,b) ^ /usr/include/math.h:443:15: note: 'pow' declared here extern double pow(double, double); ^ 1 error generated. make: *** [build/main.o] Error 1 ------------------ Francis Poulin Associate Professor Associate Chair, Undergraduate Studies Department of Applied Mathematics University of Waterloo email: fpou...@uwaterloo.ca Web: https://uwaterloo.ca/poulin-research-group/ Telephone: +1 519 888 4567 x32637 ________________________________________ From: Francis Poulin Sent: Saturday, July 19, 2014 2:09 PM To: petsc-users Subject: RE: [petsc-users] Question about PETSc installs and MPI Hello Satish, Thanks for the help on both counts. 1) I installed csh and petscmpiexec works, but I think I will stick to mpirun 2) Your modifications of the code make things work beautifully! Again, sorry to bug you but the help is greatly appreciated. Cheers, Francis ------------------ Francis Poulin Associate Professor Associate Chair, Undergraduate Studies Department of Applied Mathematics University of Waterloo email: fpou...@uwaterloo.ca Web: https://uwaterloo.ca/poulin-research-group/ Telephone: +1 519 888 4567 x32637 ________________________________________ From: Satish Balay [ba...@mcs.anl.gov] Sent: Saturday, July 19, 2014 11:52 AM To: petsc-users Cc: Francis Poulin Subject: Re: [petsc-users] Question about PETSc installs and MPI And it appears the original code was tested with 'real' numbers and petsc-3.4. It was not really tested with complex numbers. I had to make the following changes for it to run with complex & petsc-3.5 Satish --------- balay@es^/scratch/balay/test $ ../petsc-3.5.0/arch-linux2-c-debug/bin/mpiexec -n 8 valgrind --tool=memcheck -q ./main Dot Product Check... Dot Product (should be 2*256) = 512.000000 Done. Derivative Check... Min (should be 0; if halos not defined properly, would be -1.0/dDeltaX) = 0.000000 Max (should be 0; if halos not defined properly, would be +1.0/dDeltaX) = 0.000000 Done. balay@es^/scratch/balay/test $ diff -Nru main.cpp.orig main.cpp --- main.cpp.orig 2014-07-19 10:48:21.072486076 -0500 +++ main.cpp 2014-07-19 10:47:26.977985006 -0500 @@ -31,9 +31,9 @@ // DMDA Environment ////////////////////////////////////////////////////////////////////////// // Boundary Conditions - DMDABoundaryType bx = DMDA_BOUNDARY_GHOSTED; - DMDABoundaryType by = DMDA_BOUNDARY_NONE; // no boundary points since nGx = 1 - DMDABoundaryType bz = DMDA_BOUNDARY_NONE; // no boundary points since nGz = 1 + DMBoundaryType bx = DM_BOUNDARY_GHOSTED; + DMBoundaryType by = DM_BOUNDARY_NONE; // no boundary points since nGx = 1 + DMBoundaryType bz = DM_BOUNDARY_NONE; // no boundary points since nGz = 1 ////////////////////////////////////////////////////////////////////////// // Stencil type @@ -96,7 +96,7 @@ DMDAGetCorners(m_3da, &si, 0, 0, &ei, 0, 0); // Access the elements of the local arrays as C++ multi-dim. array structures - double ***pvecA, ***pvecB; + PetscScalar ***pvecA, ***pvecB; DMDAVecGetArray(m_3da, m_vecA, &pvecA); DMDAVecGetArray(m_3da, m_vecB, &pvecB); @@ -132,7 +132,7 @@ VecAssemblyEnd(m_gTempB); // Take dot product - double dDotProduct; + PetscScalar dDotProduct; VecDot(m_gTempA, m_gTempB, &dDotProduct); // Output dot product to check @@ -163,7 +163,7 @@ // Alternative (local vector): VecDuplicate(m_vecA, &m_vecDx); // Access the data in the vectors by using pointers - double ***pDx; + PetscScalar ***pDx; DMDAVecGetArray(m_3da, m_vecA, &pvecA); DMDAVecGetArray(m_3da, m_vecDx, &pDx); balay@es^/scratch/balay/test $ On Sat, 19 Jul 2014, Satish Balay wrote: > On Sat, 19 Jul 2014, Francis Poulin wrote: > > > Hello Barry, > > > > I was one of the two people that had difficulties with getting the correct > > results with John's code. Previously, I didn't have valgrind installed so > > I installed it using apt-get. Then I configured it using the following: > > > > ./configure --with-scalar-type=complex --with-cc=gcc -—with-cxx=c++ > > --with-fc=gfortran --with-c2html=0 --download-mpich --download-scalapack > > --download-hypre > > > > This is on ubuntu and is different from what I tried before in that now I > > am downloading mpich, scalapack and hypre. I decided to download > > scalapack since that seems like it could be useful. I was told that HYPRE > > doesn't work with complex variables. Too bad, but not a big deal. > > PETSc does not use scalapack. Its useful only if you are using mumps.. > > --download-metis --download-parmetis --download-scalapack --download-mumps > > > > > It completes the configure, make all and make test and even gives me the > > figures of the parallel efficiency (or not quite efficiency maybe). I > > didn't catch any errors, but there are possible errors in the log. When I > > went to try making an example I found that I can't use petscmpiexec to run > > anything in serial or parallel. > > > > fpoulin@vortex:~/software/petsc/src/ts/examples/tutorials$ > > /home/fpoulin/software/petsc/bin/petscmpiexec -n 1 ./ex1 > > -bash: /home/fpoulin/software/petsc/bin/petscmpiexec: /bin/csh: bad > > interpreter: No such file or directory > > Perhaps you do not have csh installed on this machine. You can use mpiexec > directly > > ./ex1 > /home/fpoulin/software/petsc/arch-linux2-c-debug/bin/mpiexec -n 1 ./ex1 > /home/fpoulin/software/petsc/arch-linux2-c-debug/bin/mpiexec -n 2 ./ex1 > > Satish > > > > > I am sorry to bother you with this. I am also having issues with my > > installation on my mac but I thought if i can figure this one out then > > maybe I will have a better idea what's wrong with the other. > > > > Thank, > > Francis > > > > > > ------------------ > > Francis Poulin > > Associate Professor > > Associate Chair, Undergraduate Studies > > Department of Applied Mathematics > > University of Waterloo > > > > email: fpou...@uwaterloo.ca > > Web: https://uwaterloo.ca/poulin-research-group/ > > Telephone: +1 519 888 4567 x32637 > > > > > > ________________________________________ > > From: Barry Smith [bsm...@mcs.anl.gov] > > Sent: Friday, July 18, 2014 9:57 PM > > To: John Yawney > > Cc: petsc-users@mcs.anl.gov; Francis Poulin; Kim Usi > > Subject: Re: [petsc-users] Question about PETSc installs and MPI > > > > I ran the program on linux with 1,2, 4 processes under valgrind for both > > types of boundary conditions and it ran fine. > > > > Suggest your colleagues do a test configure of PETSc using > > —download-mpich and see if they still get the problem or if it runs ok. > > > > The can also run with valgrind and see what it reports. > > http://www.mcs.anl.gov/petsc/documentation/faq.html#valgrind > > > > Barry > > > > On Jul 18, 2014, at 8:16 PM, John Yawney <jyawney...@gmail.com> wrote: > > > > > Hello, > > > > > > I had a question about PETSc installations. On my local computer I > > > configured PETSc (v 3.4.2) using the options: > > > > > > ./configure --with-cc=mpicc --with-cxx=mpic++ --download-f-blas-lapack > > > --download-mpich --download-hypre > > > > > > I wrote a test program that defines a vector using DMDAs, computes a dot > > > product, exchanges halo elements, and computes a low-order FD derivative > > > of the vector. Under my installation of PETSc everything works fine. For > > > some reason, when my colleagues run the program, they get segmentation > > > fault errors. If they change the y and z boundary types to GHOSTED as > > > well, they get the program to run until the end (seg faults at the end > > > though) but they get a local value of the dot product. I've attached the > > > main.cpp file for this script. > > > > > > When they installed their versions of PETSc they didn't use the > > > --download-mpich option but instead used either: > > > ./configure --download-f-blas-lapack --with-scalar-type=complex > > > or with the option: > > > --with-mpi-dir=/home/kim/anaconda/pkgs/mpich2-1.3-py27_0 > > > > > > Could this be causing a problem with the parallelization under PETSc? > > > > > > Thanks for the help and sorry for the long question. > > > > > > Best regards, > > > John > > > <main.cpp> > > > > >