<div dir="ltr"><div><div><div><div><div><div>Tisztel lista<br><br><br></div>van egy surgeto problemakor amit nem tudtam megoldani napok ota.<br></div>Az egyik c++ kodom MPI-t hasznal integralasra, de sajnos nem mindig mukodik kellokepp a debreceni gepen.<br>
<br></div>eloszor is az SGE fele mpi-ben nem fordul le mivel nem ismeri fel az MPI reszt ?<br>mpi-selector --query -> mpt-2.04<br><br><div>** makefile 1 **<br></div><div>CC=mpicxx<br>CFLAGS= -march=native -c -O2 -W -Wall -funroll-loops -g -lmpi++ -lmpi<br>
</div>.. etc.<br>**<br>error: ‘MPI’ has not been declared (pedig #include <mpi.h> termeszetesen megvan) <br><br></div><div>itt megjegyzendo, hogy az mpicxx az SGI MPT es az mpic++ az GCC openMPI<br><br></div>Persze openmpi-vel azonnal lefordul<br>
mpi-selector --query -> openmpi 1.4.2<br><br></div><div>** makefile 2 **<br></div><div>CC=mpic++<br>CFLAGS= -march=native -c -O2 -W -Wall -funroll-loops -g -lmpi++ -lmpi<br></div><div>.. etc.<br>**<br><br></div></div><div>
ezek utan a kodot <br></div><div>mpiexec -np $MPI_THREADS ./kod ... <br><br></div><div>ahol $MPI_THREADS = 12 tol 120-ig<br><br></div><div>sajnos a program futasi ideje nem skalazik annyira jol amennyire elvarnam sot a 12 esetben talan meg lassabb mint az asztali gepemen 6-core<br>
<br></div><div>A masik problemam az az, hogy probalom az ujabb gcc/4.6.4 fordito csomagot hasznalni es a .bashrc bele is irtam, hogy <br></div><div>module load gcc/4.6.4 openmpi/1.6.3-gcc-4.7.2  es ez be is toltodik mivel megtalalom a <br>
</div><div>module list parancsal, de mikor a kodot elinditom mindig azt a hibat kapom, hogy <br><br>ModuleCmd_Load.c(199):ERROR:105: Unable to locate a modulefile for 'gcc/4.6.4'<br>ModuleCmd_Load.c(199):ERROR:105: Unable to locate a modulefile for 'openmpi/1.6.3-gcc-4.7.2'<br>
<br></div><div>van mikor tovabb fut a kod de van mikor azonnal stoppol !<br></div><div><br></div><div>Persze itt meg lenne tovabbi problema mint peldaul az, hogy talan a BOOST konyvtarakkal osszeakad a kod ha a gcc/4.7.2 modult betoltom es nem fordul le (boost hiba)<br>
<br></div><div>MEgjegyszem az asztali gepemen Ubuntu 13.04 van gcc 4.7.3 es probaltam mar Ubuntu 12.04 is es tokeletesen mukodik (regebbi gcc-vel es konyvtarakkal)<br></div><div><br>** makefile ** <br></div><div>CC=mpicxx.openmpi<br>
CFLAGS= -march=native -c -O2 -W -Wall -funroll-loops<br>**<br><br></div><div>erdekes az is, hogy az mpicxx.openmpi-t nem ismeri fel a szuperszamitogep !<br><br></div><div><br></div><div>Elore is koszonom szepen a segitseget,<br>
e<br><br></div><div><br></div><div>u.t. <br><br></div><div>mi van akkor ha egyszerre 2 mpis programot futtatok pl, <br><br>#!/bin/sh<br>#$ -N test2<br>#$ -l h_vmem=4G <br>#$ -l h_rt=23:59:59<br>#$ -pe mpi 24<br>#$ -q parallel.q<br>
</div><div><br>time mpiexec -np 12 ./kod $writedir01/ > kod.out1 &<br>time mpiexec -np 12 ./kod $writedir11/ > kod.out2 &<br></div><div>wait<br><br></div><div>ez magatol erthetodo ? 24 thread 2 reszre osztva ? es "&" parhuzamosan futtnak <br>
<br></div><div>vagy csak egymas utan lehet<br><div><br>time mpiexec -np 24 ./kod $writedir01/ > kod.out1 ;<br>time mpiexec -np 24 ./kod $writedir11/ > kod.out2 ;<br></div>wait<br><br><br></div></div>