Guía de Instalación de GADGET

Anuncio
Printed by Hector Aceves
Apr 05, 11 15:43
InstalarMPI_GADGET.txt
==================================================================
||||||||||||||| GADGET NBODY−SPH PARALLEL CODE ||||||||||||||||||
==================================================================
Page 1/6
* Instrucciones generales para instalar el GADGET en PARALELO, en
el directorio LOCAL. Este procedimiento funciona, o al menos esta
probado, para maquinas con memoria compartida (shared): maquinas
tipo multicore (dual, quadcore, etc).
* Sin librerias HDF, por el momento.
* La instalacion como root (superusuario, sudo, etc etc) es similar,
y mas conveniente, pero si no se tienen privilegios de administrador
ni modo; este es el camino.
* Se debe tener los compiladores, por ejemplo: gcc y gfortran funcionales.
[instalarlos, si se esta en Ubuntu, con el synaptic manager]
Vamos a describir como instalar:
a)
b)
c)
d)
e)
MPI
FFTW
GSL
GADGET, y
correr el ejemplo de GADGET: galaxias colisionando
Hector Aceves / IAUNAM / 2010
==================================================================
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
==================================================================
* Crear directorio "local", por ejemplo:
/home/aceves/local
−desde su home.... en el prompt (> o $ generalmente) hacer:
> mkdir local
* Tener en directorio home ( HOME=/home/aceves )
1)
2)
3)
4)
los archivos:
mpich2−1.2.tar.gz
fftw−2.1.5.tar.gz
gsl−1.13.tar.gz
gadget−2.0.7.tar
==================================================================
(a) INTALACION DE LIBRERIA MPI
==================================================================
* Se instalar la libreria MPI usando los compiladores gcc y el
gfortran. Tambien pudieran instalarse con otros, como el Intel
o el Portland, pero no los describimios aqui. Como nota, entre el
fortran de Intel y Gfortran existen incompatibilidades en los
archivos binarios; el gfortran no puede leer adecuadamente los
binarios generados con compiladores Intel.
Tuesday April 05, 2011
1/6
Printed by Hector Aceves
InstalarMPI_GADGET.txt
Apr 05, 11 15:43
Page 2/6
# des−tararear y crear dir
*> tar xfz mpich2.tar.gz
# moverse al dir cread
*> cd
HOME/mpich2−1.2
#HOME=/home/aceves en este caso
#usar el correspondiente en adelante
# configurar ahi y crear un archivo
# de bitacora *.log
*> ./configure −−prefix=HOME/local/ 2>&1 | tee configure.log
#si hay problemas con crear la bitacora
#con el "tee" solo hagase
# > ./configure −−prefix=HOME/local/
# y similar en otros "tees"
*> make
2>&1 |
tee make.log
# contruir libreria y bitacora
#.. o solo make
# instalar en el LOCAL
*> make install 2>&1 | tee install.log
# o solo make install
# ir al HOME y ver que PATHs existen
*> cd HOME
*> echo $PATH
[e.g. /usr/lib64/mpi/gcc/openmpi/bin:/usr/local/bin:/usr/bin/X11:..... ]
#
#
#
#
#
#
#
#
#
*> emacs .bashrc
si hay MPIs o OPENMPIs apuntando a otro
lado.. quitarlo. Para lo cual hay que
abrir el archivo ".bashrc" (u otro
semejante si tiene tcsh o algo asi)
e ingresar el path anterior, pero sin
el directorio "ofensor" en su PATH.
*Conviene guardar todos los directorios
de su PATH original en un archivo dado
por si luego tiene problemas, ok!*
# Digamos que hace:
# se le quito el:
# /usr/lib64/mpi/gcc/openmpi/bin
PATH=/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:....
PATH=$PATH:HOME/local/bin
export PATH
# Anexarle el bin local al PATH
#...recuerde que HOME es /home/usuario
# Esta linea tambien se anexa al .bashrc
# Anexarle la direcciones de las
# librerias locales:
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:HOME/local/lib
export LD_LIBRARY_PATH
2/6
Tuesday April 05, 2011
Printed by Hector Aceves
Apr 05, 11 15:43
InstalarMPI_GADGET.txt
*> salvar y salirse del emacs
*> en el prompt hacer:
source .bashrc
Page 3/6
(para activar los cambios)
* Checar que funciona el MPICH:
*> which mpd
# debe apuntar a /HOME/local/bin/mpd
*> which mpirun
# debe apuntar a /HOME/local/bin/mpirun
*> emacs
# crear este archivo e ingresar palabra secreta
.mpd.conf
secretword=palabrasecreta
# solo esta linea y salirse
*> chmod 600 .mpd.conf
# para cambiar atributos.
* Para correr en paralelo, se haria algo como:
*> mpd &
# activa el manejador de procesos, no olvidar la &
*> mpirun −np 4 ./Gadget galaxy.param
*> mpdallexit
# como se correria el gadget
# deja de activarse el trabajo en paralelo...
==================================================================
(b) FFTW
(Transformada de Fourier)
==================================================================
* Desde su directorio HOME, hacer
*> tar −zxvf fftw−2.1.5.tar.gz
# ..descomprimir desde el HOME
*> cd fftw−2.1.5
# .. irse al directorio
# crear e instalar en el directorio
# LOCAL las librerias de fftw, con
# las opciones indicadas...
*> ./configure −−prefix=HOME/local
loat
−−enable−type−prefix −−enable−mpi −−enable−f
*> make
*> make install
==================================================================
(c) GSL
==================================================================
* De nuevo desde su HOME
*> tar −zxvf gsl−1.13.tar.gz
# descomprimir
*> cd gsl−1.13
Tuesday April 05, 2011
3/6
Printed by Hector Aceves
Apr 05, 11 15:43
InstalarMPI_GADGET.txt
*> ./configure −−prefix=HOME/local
Page 4/6
*> make
*> make install
==================================================================
(d) GADGET
==================================================================
Desde su HOME
*>
tar −zxvf gadget−2.0.7.tar.gz
*> cd Gadget−2.0.7
*> cd Gadget2
# crear una "maquina" para Gadget segun sus
# cualidades, eg: JUPITER (eliga el nombre
# que guste para su maquina)
*> cp Makefile Makefile.orig
#..salvando el makefile original
*> emacs Makefile
* Comentar (poner un # al inicio) las opciones default:
−comentar SYSTYPE="MPA"
−−> #SYSTYPE="MPA"
−comentar que se tiene HDF −−> #OPT
+= −DHAVE_HDF5
−crear nuevo sistema
−−> SYSTYPE="JUPITER"
* Hacer un "copy & paste" de las opciones para la definicion de
una nueva maquina. Asi, por ejemplo, anexar
la siguiente opcion en "Adjust settings for target computer"
con los paths pertinentes
* Salvar el archivo (aqui suponemos que nuestra maquina es de 64 bits
ifeq ($(SYSTYPE),"JUPITER")
CC
= mpicc
OPTIMIZE = −O3 −Wall −m64
GSL_INCL = −I/HOME/local/include/gsl
GSL_LIBS = −L/HOME/local/lib −Wl,"−R /HOME/local/lib"
FFTW_INCL= −I/HOME/local/include
FFTW_LIBS= −L/HOME/local/lib
MPICHLIB =
HDF5INCL =
HDF5LIB =
endif
*> make
*> ls
!debe aparecer el ejecutable:
Gadget2
==================================================================
4/6
Tuesday April 05, 2011
Printed by Hector Aceves
Apr 05, 11 15:43
InstalarMPI_GADGET.txt
(e) Ejemplo de uso de GADGET
==================================================================
Page 5/6
− Para cada tipo de simulacion (ncuerpos, gas, cosmologica, etc) se
debe recompilar GADGET (vease su manual).
− Para la prueba de la colision entre dos galaxias, en el Makefile
anterior hay que deshabilitar la opcion de PERIODIC
(poner un # en OPT: #OPT
+= −DPERIODIC )
y la de malla ( #OPT
+= −DPMGRID=128 ). Ya que se resuelven
las ecuaciones con la parte de codigo de arbol.
Activar la de calculo de energia potencial, para ver luego la
conservacion de energia: ( OPT
+= −DCOMPUTE_POTENTIAL_ENERGY )
*> make
# volvera a generar el Gadget2 con las opciones anteriores
*> cd ..
# para estar en
~/Gadget−2.0.7
*> mkdir Galaxia
y no en Gadget2/
#creando directorio de trabajo para prueba
*> cp Gadget2/Gadget2 Galaxia/
# copiar el ejecutable al dir de trabajo
*> cp ICs/galaxy_littleendian.dat Galaxia/
#copiar condiciones iniciales
#generalmente las PC x86 usan
#el tipo little−endian
#..googlear este punto..
# en.wikipedia.org/wiki/Endianness
*> cp Gadget2/parameterfiles/galaxy.param Galaxia/
#copiar params en el dir
*> cd Galaxia
# irnos al directorio de trabajo "Galaxia"
*> mkdir galaxy
# crear un directorio "galaxy" donde estaran resultados
*> ls
# debe estar:
Gadget2
galaxy
galaxy_littleendian.dat
*> emacs galaxy.param
galaxy.param
#editar el archivo de parametros..
− cambiar en:
InitCondFile
ICs/galaxy_littleendian.dat
por:
InitCondFile
galaxy_littleendian.dat
− cambiar
OutputListFilename
parameterfiles/output_list.txt
por:
OutputListFilename
output_list.txt
− para que todo este en el directorio de trabajo "Galaxia"
Tuesday April 05, 2011
5/6
Printed by Hector Aceves
InstalarMPI_GADGET.txt
Apr 05, 11 15:43
Page 6/6
− salvar y salirse
*> mpd &
# cargar el manejador de procesos en paralelo
*> mpdtrace
# para checar que apunte al HOST en que estamos trabajando
*> mpirun −np 4 ./Gadget2 galaxy.param
*> ls galaxy/
# para correr el gadget con 4 CPUs
# ahi deben estar los snapshots generados !!!!!
==================================================================
6/6
Tuesday April 05, 2011
Descargar