Great. Thanks Ian. I haven't tried simfactory yet -- I've been a bit out of the loop --- I was just noting that the latest version of Cactus I downloaded a couple days ago said that I was on a new architechture
I'll take a look at simfactory.
-- Scott H. Hawley, Ph.D. Asst. Prof. of Physics Chemistry & Physics Dept Office: Hitch 100D Belmont University Tel: +1-615-460-6206 Nashville, TN 37212 USA Fax: +1-615-460-5458 PGP Key at http://sks-keyservers.net
On May 21, 2011, at 4:51 AM, Ian Hinder wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 20 May 2011, at 19:08, Scott Hawley wrote:
Got it to build and run! See below for config "options" Yes, it is complicated on the Mac because Apple ships its own messed up version of MPI which you have to be careful not to use, and Apple uses the gnu v4.2.1 compiler but in order to get a fortran 90 compiler you need the straight-GNU compiler which for me is v4.4
I wrote a simfactory optionlist for using 64 bit fink on Mac OS with Cactus. See
https://svn.cct.lsu.edu/repos/numrel/simfactory/branches/PYSIM_2010/mdb/optionlists/macos-fink-gcc.cfgThis seems to only be in the python version of simfactory - we could put it in the perl version as well. There are full instructions at the top of the file for the commands needed to get it working, and you don't need simfactory to use the optionlist. Just replace the @..@ tokens with something sensible.
This, then, is my "options.mac" file, which produces a complete build of my thorn and runs properly with MPI. Consider using it for a "known architectures" file. The /sw directory is where fink puts things. One needs to get gfortran and openmpi from fink. Some of the libraries I'm using will not be necessary for all people, but I'll let you take them out. This works for me! ...Oh, that is to say, with all the "CarpetIO..." thorns not activated. Haven't gotten those working yet.
% cat options.mac CC = /sw/bin/mpicc CXX = /sw/bin/mpic++ F77 = /sw/bin/mpif77 F90 = gfortran CFLAGS = -m64 -std=c99 CXXFLAGS = -m64 FFLAGS = -m64 F90FLAGS = -m64 LIBS = texmex bbhutil sv mfhdf df jpeg z gfortran LDFLAGS = -L/sw/lib -L/sw/lib/gcc4.4/lib/ -L/Users/shawley/lib -L/Users/shawley/texmex/lib MPI = OPENMPI OPENMPI_DIR = /sw TEXMEX_DIR = /Users/shawley/texmex
On May 20, 2011, at 11:43 AM, Erik Schnetter wrote:
Scott
This usually means that the libraries used to build the executable and the mpirun command don't belong together. In other words, either the libraries used for building, or the shared libraries used at run time (if you use shared libraries), or the mpirun executable are not what you think they are.
make texmex SILENT=no shows you (at the end) which libraries are used during the build.
ldd exe/cactus_texmex (or otool -L exe/cactus_texmex) shows which shared libraries will be used. Certain environment variables influence this; make sure you use the same settings that you use when you call mpirun.
"which mpirun" shows which mpirun will be used.
-erik
On Fri, May 20, 2011 at 12:36 PM, Scott Hawley scott.hawley@belmont.edu wrote:
My code works totally ok with MPI on my linux machine, but as I'm porting to my Mac, I find that MPI isn't working right. I'm using the OpenMPI version from fink) A simple "hello world" MPI program works fine (proof at the bottom of this message), but Cactus does not.
That is to say, e.g. an 8-processor run ("/sw/bin om-mpirun -np 8 ....") results in 8 processes, but each processes thinks it's processor 0, and that there are no other processors.
Any ideas why this might happen? Thanks, Scott
I'm using Cactus version 4.0.b17 (Compile date: May 20 2011 (11:13:49)).
Cactus run:
mpirun -np 8 ~/Cactus/exe/cactus_texmex sep20a0.5fmrbbh97_cactus.par
101 0101 ************************ 01 1010 10 The Cactus Code V4.0 1010 1101 011 www.cactuscode.org 1001 100101 ************************ 00010101 100011 (c) Copyright The Authors 0100 GNU Licensed. No Warranty 0101
Cactus version: 4.0.b17 Compile date: May 20 2011 (11:13:49)
101 0101 ************************ 01 1010 10 The Cactus Code V4.0 1010 1101 011 www.cactuscode.org 1001 100101 ************************ 00010101 100011 (c) Copyright The Authors 0100 GNU Licensed. No Warranty 0101
Cactus version: 4.0.b17 Compile date: May 20 2011 (11:13:49)
101 0101 ************************ 01 1010 10 The Cactus Code V4.0 1010 1101 011 www.cactuscode.org 1001 100101 ************************ 00010101 100011 (c) Copyright The Authors 0100 GNU Licensed. No Warranty 0101
Cactus version: 4.0.b17 Compile date: May 20 2011 (11:13:49)
101 0101 ************************ 01 1010 10 The Cactus Code V4.0 1010 1101 011 www.cactuscode.org 1001 100101 ************************ 00010101 100011 (c) Copyright The Authors 0100 GNU Licensed. No Warranty 0101
Cactus version: 4.0.b17 Compile date: May 20 2011 (11:13:49)
101 0101 ************************ 01 1010 10 The Cactus Code V4.0 1010 1101 011 www.cactuscode.org 1001 100101 ************************ 00010101 100011 (c) Copyright The Authors 0100 GNU Licensed. No Warranty 0101
Cactus version: 4.0.b17 Compile date: May 20 2011 (11:13:49)
101 0101 ************************ 01 1010 10 The Cactus Code V4.0 1010 1101 011 www.cactuscode.org 1001 100101 ************************ 00010101 100011 (c) Copyright The Authors 0100 GNU Licensed. No Warranty 0101
Cactus version: 4.0.b17 Compile date: May 20 2011 (11:13:49)
101 0101 ************************ 01 1010 10 The Cactus Code V4.0 1010 1101 011 www.cactuscode.org 1001 100101 ************************ 00010101 100011 (c) Copyright The Authors 0100 GNU Licensed. No Warranty 0101
Cactus version: 4.0.b17 Compile date: May 20 2011 (11:13:49)
101 0101 ************************ 01 1010 10 The Cactus Code V4.0 1010 1101 011 www.cactuscode.org 1001 100101 ************************ 00010101 100011 (c) Copyright The Authors 0100 GNU Licensed. No Warranty 0101
Cactus version: 4.0.b17 Compile date: May 20 2011 (11:13:49) Run date: May 20 2011 (11:24:38-0500) Run host: provision.local (pid=6067) Working directory: /Users/shawley/runs/cactus Executable: /Users/shawley/Cactus/exe/cactus_texmex Parameter file: sep20a0.5fmrbbh97_cactus.par
Run date: May 20 2011 (11:24:38-0500) Run host: provision.local (pid=6071) Working directory: /Users/shawley/runs/cactus Executable: /Users/shawley/Cactus/exe/cactus_texmex Parameter file: sep20a0.5fmrbbh97_cactus.par
Activating thorn Cactus...Success -> active implementation Cactus Run date: May 20 2011 (11:24:38-0500) Run host: provision.local (pid=6070) Activating thorn Cactus...Success -> active implementation Cactus Run date: May 20 2011 (11:24:38-0500) Run host: provision.local (pid=6074) Working directory: /Users/shawley/runs/cactus Executable: /Users/shawley/Cactus/exe/cactus_texmex Parameter file: sep20a0.5fmrbbh97_cactus.par
Activating thorn Cactus...Success -> active implementation Cactus Run date: May 20 2011 (11:24:38-0500) Run host: provision.local (pid=6073) Working directory: /Users/shawley/runs/cactus Executable: /Users/shawley/Cactus/exe/cactus_texmex Parameter file: sep20a0.5fmrbbh97_cactus.par
Working directory: /Users/shawley/runs/cactus Executable: /Users/shawley/Cactus/exe/cactus_texmex Parameter file: sep20a0.5fmrbbh97_cactus.par
Activating thorn Cactus...Success -> active implementation Cactus
Activating thorn Cactus...Success -> active implementation Cactus Run date: May 20 2011 (11:24:38-0500) Run host: provision.local (pid=6068) Run date: May 20 2011 (11:24:38-0500) Run host: provision.local (pid=6069) Run date: May 20 2011 (11:24:38-0500) Run host: provision.local (pid=6072) Working directory: /Users/shawley/runs/cactus Executable: /Users/shawley/Cactus/exe/cactus_texmex Parameter file: sep20a0.5fmrbbh97_cactus.par
....and so on.....
Yet a imple program works: The simple example which works fine is...
cat hello.c
#include <stdio.h> #include "mpi.h"
int main(argc, argv) int argc; char **argv; { int rank, size; MPI_Init(&argc,&argv); MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &size); printf("Hello world! I am %d of %d\n",rank,size); MPI_Finalize(); return 0; }
mpicc -o hello hello.c which mpirun
/sw/bin/mpirun
ls -l /sw/bin/mpirun
lrwxr-xr-x 1 root shawley 9 May 20 10:55 /sw/bin/mpirun@ -> om-mpirun
mpirun -np 8 ./hello
Hello world! I am 0 of 8 Hello world! I am 6 of 8 Hello world! I am 3 of 8 Hello world! I am 1 of 8 Hello world! I am 2 of 8 Hello world! I am 4 of 8 Hello world! I am 5 of 8 Hello world! I am 7 of 8
Users mailing list Users@einsteintoolkit.org http://lists.einsteintoolkit.org/mailman/listinfo/users
-- Erik Schnetter schnetter@cct.lsu.edu http://www.cct.lsu.edu/~eschnett/
Users mailing list Users@einsteintoolkit.org http://lists.einsteintoolkit.org/mailman/listinfo/users
Ian Hinder ian.hinder@aei.mpg.de
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.8 (Darwin)
iEYEARECAAYFAk3XiwYACgkQF1LN8Zj+Ceh5qwCfSuHFBt55qB7WGsLC+JCE6sdU PIAAn2+G3xAfON9rzfv7UTlcCu7IZ+0j =z2SW -----END PGP SIGNATURE-----