Platforms to which SPRNG has been Ported
We describe, in this section, certain platform dependent matters relating to SPRNG installation and usage.We also give typical compilation examples. These examples assume that liblcg.a is installed in the lib subdirectory, and that the SPRNG header files are in the subdirectory include of the parent directory.
We give examples with MPI in the case of parallel machines and sequential examples in the workstations. In order to execute the MPI executables, the user typically issues a command of the following form:
mpirun -np n a.out
where n is the number of processors required.
Parallel Machines
Cray T3D
A previous version of SPRNG was ported to the CRAY T3D. The particular system used was the one at the Pittsburgh Supercomputer Center. Users can set the PLAT variable in make.CHOICES to T3E and try to build SPRNG on this machine.Typical Compilation:
A three step procedure is used in compiling FORTRAN programs. The first step uses the C preprocessor to produce a file with a .i extension. We move this to a file with a .f extension and compile as a standard FORTRAN program.
- /mpp/bin/cc -Tcray-t3d -O 3 -I../include -I/usr/local/mpp/include program.c -L../lib -llcg -L/usr/local/mpp/lib -lmpi
- (1) cc -E -P -I../include -I/usr/local/mpp/include program.F
(2) mv program.i program.f
(3) cf77 -O scalar3 program.f -L../lib -llcg -L/usr/local/mpp/lib -lmpiMore recent versions of the compilers may not require this complicated process. The instructions for the T3E may work for this machine too.
The system on which we tested SPRNG does not use mpirun. Instead, we set the number of processors to be used by issuing a command of the following form:
setenv MPP_NPES n
where n is the number of processors. The executable can then be run by just entering its name.
Cray T3E
SPRNG has been ported to the CRAY T3E. The particular system tested on was the one at the Pittsburgh Supercomputer Center.Typical Compilation:
If the 'mpt' module is used, then it automatically links to the MPI library.
- c89 -O -I../include program.c -L../lib -llcg
- f90 -F -O program.F -L../lib -llcg
IBM SP2
SPRNG has been ported to the IBM SP2 available at the Cornell Theory Center.Typical Compilation:
The C and FORTRAN compilers used above automatically link to the MPI library. The -WF, switch is used to pass flags in a format similar to that with "standard" compilers.
- mpcc -O3 -qstrict -qarch=pwr2 -qlanglvl=ansi -qtune=pwr2 -I../include -I/usr/lpp/ppe.poe/include program.c -L../lib -llcg
- mpxlf -O3 -qstrict -qarch=pwr2 -qtune=pwr2 -WF,-I../include -WF,-I/usr/lpp/ppe.poe/include program.F -L../lib -llcg
HP/CONVEX Exemplar
SPRNG was ported to the HP/CONVEX Exemplar at NCSA.Typical Compilation:
- c89 +O2 +U77 +Odataprefetch +Olibcalls +e -I../include program.c -L../lib -llcg -L/opt/mpi/lib/pa1.1 -lpmpi -lmpi /usr/lib/libail.sl -lcnx_syscall
- fort77 +O2 +U77 +Odataprefetch +Olibcalls -I../include program.F -L../lib -llcg -L/opt/mpi/lib/pa1.1 -lpmpi -lmpi /usr/lib/libail.sl -lcnx_syscall
SGI-CRAY Origin 2000
SPRNG has been ported to the SGI-CRAY Origin 2000 at NCSA. Please see the notes for the SGI Power Challenge for further details.Typical Compilation:
- cc -O3 -align64 -64 -I../include program.c -L../lib -llcg -L/usr/lib64 -lmpi
- f77 -O3 -align64 -64 -DPOINTER_SIZE=8 -I../include program.F -L../lib -llcg -L/usr/lib64 -lmpi
SGI Power Challenge
SPRNG has been ported to the SGI Power Challenge at NCSA. Both 32 bit and 64 bit compilations can be performed. The file make.SGI contains variable definitions for both the versions. Initially, we comment out the variable setting for one of the versions. If users wish to compile SPRNG in the other mode, then they should uncomment the lines that refer to that mode and comment out the lines that refer to the previous mode.Typical Compilation:
- cc -O3 -align64 -64 -I../include program.c -L../lib -llcg -L/usr/lib64 -lmpi
- f77 -O3 -align64 -64 -DPOINTER_SIZE=8 -I../include program.F -L../lib -llcg -L/usr/lib64 -lmpi
Sequential Machines
SPRNG has been ported to the workstations mentioned below. Since these machines were single processor systems, the MPI version of SPRNG was not used.HP
SPRNG was been ported to an HP9000/715 workstation.Typical Compilation:
We need to use -llcg -L/usr/lib -lU77 only if command line arguments are used in the program.
- c89 -O -ansi -I../include program.c -L../lib -llcg
- fort77 -O2 -I../include program.F -L../lib -llcg -L/usr/lib -lU77
PC running Linux
SPRNG was been ported to a Pentium 200Mhz PC running Linux.Typical Compilation:
- gcc -O3 -I../include program.c -L../lib -llcg
- g77 -O3 -I../include program.F -L../lib -llcg
SUN
SPRNG was been ported to a SUN workstation running SUN OS and SOLARIS.Typical Compilation:
- gcc -O3 -I../include program.c -L../lib -llcg
- f77 -fast -O3 -u -I../include program.F -L../lib -llcg