1 4 2 4 3 5 4 OpenMP 6 4.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

Transcription

1 4 2 4 3 5 4 OpenMP 6 4.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
dddddddddddddddddddd
ddddddddddddddddd dddddd ddd
2010 d 11 d
dd
1 dd
4
2 ddddddddd
4
3 ddddddddd
5
4 ddd OpenMP d dd d
6
4.1 ddddd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
4.1.1
Intel C/C++ Fortran ddddd . . . . . . . . . . . . . . . . . .
6
4.1.2
PGI C/C++ Fortran ddddd . . . . . . . . . . . . . . . . . .
7
4.1.3
GNU C/C++ Fortran ddddd . . . . . . . . . . . . . . . . .
7
C/C++ ddddd . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
4.2
4.3
4.2.1
dddddddddddddd
. . . . . . . . . . . . . . . . . .
8
4.2.2
Intel C/C++ ddddddddd . . . . . . . . . . . . . . . . .
9
4.2.3
PGI C/C++ ddddddddd . . . . . . . . . . . . . . . . .
10
4.2.4
GNU C/C++ ddd GCC dddddd . . . . . . . . . . . . .
14
4.2.5
C/C++ dddddd . . . . . . . . . . . . . . . . . . . . . . . .
18
Fortran ddddd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
4.3.1
dddddddddddddd
. . . . . . . . . . . . . . . . . .
19
4.3.2
Intel Fortran ddddddddd . . . . . . . . . . . . . . . . .
19
4.3.3
PGI Fortran ddddddddd . . . . . . . . . . . . . . . . . .
22
dd
4.4
2
4.3.4
GNU Fortran ddddddddd . . . . . . . . . . . . . . . . .
27
4.3.5
Fortran dddddd . . . . . . . . . . . . . . . . . . . . . . . .
31
OpenMP dddddddd . . . . . . . . . . . . . . . . . . . . . . . . .
32
5 MPI d ddd dd
34
5.1
MPI ddddddd . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
5.2
MPI ddddddd . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
5.3
MPI dddddd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
6 ddddd
6.1
6.2
36
Intel MKL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
6.1.1
MKL dddd . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
6.1.2
MKL dddd . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
6.1.3
dd MKL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
ACML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
6.2.1
ACML dd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
6.2.2
ddddd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
6.2.3
ACML MVddddddddddd . . . . . . . . . . . . . . . .
41
7 dddddd
42
7.1 dddddbsub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
7.1.1
ddddddddbsub -q . . . . . . . . . . . . . . . . . . . . . .
42
7.1.2
dddddddbsub -q serial . . . . . . . . . . . . . . . . . . . .
43
7.1.3
dddddd CPU dddbsub -n . . . . . . . . . . . . . . . . .
43
7.1.4
dd MPI dddbsub -n NUM mpiibjob|mpip4job . . . . . . . .
43
7.1.5
dd OpenMP dddddddbsub -a openmp -R “span[hosts=1]” 43
7.1.6
ddddddddbsub -x . . . . . . . . . . . . . . . . . . . . . .
44
7.1.7
ddddddddddddbsub -i -o -e . . . . . . . . . . . . . .
44
7.1.8
ddddddddbsub -I . . . . . . . . . . . . . . . . . . . . . .
44
7.2 dddddbkill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
7.3 dddddbstop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
7.4 dddddddddddbresume . . . . . . . . . . . . . . . . . . . . . .
45
dd
7.5 dddddddddbtop
3
. . . . . . . . . . . . . . . . . . . . . . . . . .
45
7.6 dddddddddbbot . . . . . . . . . . . . . . . . . . . . . . . . . .
45
7.7 dddddddddddbmod . . . . . . . . . . . . . . . . . . . . . . .
46
7.8 dddddddddddddbjobs . . . . . . . . . . . . . . . . . . . . .
46
7.9 dddddddddddddddbpeek . . . . . . . . . . . . . . . . . .
47
7.10 dddddddddddlsload . . . . . . . . . . . . . . . . . . . . . . .
47
7.11 dddddddddddbhosts . . . . . . . . . . . . . . . . . . . . . . .
47
7.12 dddddddbqueues . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
7.13 dddddddbuser . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
8 dddd
49
2
1
ddddddddd
4
dd
ddddddddddddddddddddddddddddddddddd
ddddddddddddddddddddddddddddddddddddd
dddddddddddddddddddddddd
ddddddddddddddddddddddddddddddddddd
dddddddddd
2
ddddddddd
dddddddddd 2009 dddddddddddddddddddddd
ddddd TC2600 dddddddd A950r-F dddddddddddddddd
dddddddddd 3.6 ddddddddddd
• TC2600 ddd38 ddddddddd 2.1GHz d AMD Opteron 2352 x86 64 d
dddddddddd16GB ddddd 146GB SAS ddd38 ddddddd
ddddd 2.55 dddd
• A950r-F ddddddddddddd 2.2GHz d AMD Opteron 8354 x86 64 d
dddddd 32 ddd64GB ddddd 146GB SAS ddddddddddd
d 0.28 dddddddddd 0.56 dddd
• IO dddddddd A620r-FX dddddddddddd 2.1GHz d AMD
Opteron 2352 x86 64 ddddddddddd8GB ddddd 146GB SAS d
ddddddddddddd 0.4 dddd
• ddddddddddddd A620r-FX dddddddddddd 2.1GHz d
AMD Opteron 2352 x86 64 ddddddddddd16GB ddddd 146GB
SAS dddddddddddddd 0.13 dddd
• ddddd1dInfiniBandddd 10Gb/sd2ddddddd
• ddddddddddd
• ddddddddd 5TBddd 750GB SATA dddd HDS WMS 100 ddd
3
ddddddddd
5
• dddddCentOS 5.4d
• ddddInteldPGIdGNU d C/C++ Fortran dddd
• ddddddACMLdMKL d BLASdGoto BLASdATLASdLAPACKdScaLAPACK dd
• dddddOpen MPIdMVAPICHdMVAPICH2ddd MPI ddddddd
ddddddddd A950r-F dddd 32 ddddddddddddddd
d MPI ddddddddddddd OpenMP dddddddddddddd
ddddddddddddddddddddd
• dddddPlatform LSF 6.0d
ddddddddd
3
dddddddddd CentOS 5.4dddd telnet ddddddddd ssh1 d
ddddddddddddddddddddddddd ftpd sftp dddddd
dftp dddddddddd(passive)dddddddddddddddd sftp d
ddd
dddddddddd shell d bashddddddd ypchsh ddddddd
d shellddddddddddddd yppasswd dddddddddddd passwd d
ddddddddddddddd
ddddddddddddddddddddddddddddd ˜/.bashrc d
export LC ALL=zh CN.GBK d export LC ALL=zh CN.UTF8 ddddddd GBK
d UTF8 ddddd
dddddd
CentOS(Community ENTerprise Operating System)d Linux ddddddddd
dd Red Hat Enterprise Linux ddddddddddddddddddddddd
ddddddddddddddddddddddddd CentOS dddddd Red
Hat Enterprise Linux dddddddddd CentOS dddddddddddddd
ddddd man ddddddd -h d –help ddddddddddddddddd
ddddd CentOSdRed Hat Enterprise Linux AS ddddd Linux ddd
d MS Windows dddd putty ddd ssh dddddddddddddputty dddhttp:
//www.chiark.greenend.org.uk/~sgtatham/putty/download.html
1
4 ddd OPENMP dddd
6
ddd OpenMP dddd
4
ddddddddd C/C++dFortran ddddddddd OpenMP d MPI d
ddddddddddddddddddddddddddddddddddddd
ddddddddddddddddddddddddddddddddddddd
• C/C++dFortran ddddInteldPGI d GNU d C/C++ Fortran ddddd
d OpenMP ddddd
• MPI dddddOpen MPIdMVAPICHd
ddddddddddd OpenMP ddddddddMPI ddddddddd
ddddd
ddddd
4.1
4.1.1
Intel C/C++ Fortran dd dd d
Intel C/C++ Fortran dddddddddd Inetl ddddddddddd AMD
Opteron dddddddddddddddddddddddddddd
10 ddddd Intel C/C++ dddddd /opt/intel/cce/xdFortran ddd
d /opt/intel/fce/xdx dddddddddddddd 10.0.023dd11 dddddd
ddd /opt/intel/Compiler/y/zddddddd 11.1.064dddd y d 11.1dz d 064dd
dddddddddddddddddddd
d d d d d d d d d d 11.1 d d d d d d d d d d d d d d d d d d
d ˜/.bashrc dddddddddddddddd
• 10.0.023 ddd
– C/C++d
. /opt/intel/cce/10.0.023/bin/iccvars .sh
ddd
ddddddddd .dddddd
– Fortrand
. /opt/intel/fce/10.0.023/bin/ ifortvars .sh
4 ddd OPENMP dddd
7
• 11.1.064 ddd
– C/C++d
. /opt/intel/Compiler/11.1/064/bin/iccvars.sh intel64
– Fortrand
. /opt/intel/Compiler/11.1/064/bin/ifortvars.sh intel64
Intel ddddd C d C++ ddddddddddd icc d icpcddd Fortran d
dddddd ifortdicpc ddddd icc ddddddddddddd icpc dddd
ddd .c d .i dddddd C++ dddddd icc ddddddd .c d .i ddd
dddd C dddd icpc dddddddd C++ dddd icc ddddddddd
dddddd C++ ddddddd C++ dd
4.1.2
PGI C/C++ Fortran dd ddd
PGI C/C++ Fortran dddddddddd CPU ddddddddddddd
ddddddddddddddddddd
PGI d d d d d d /opt/pgi/linux86-64/xdx d d d d d d d d d d d d
d 7.1d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d
d 7.1 ddddddddddddddddddddddddddd x ddddd
d ˜/.bashrc ddddddddd
PGI=/opt/pgi/linux86−64/x
export PATH=$PATH:$PGI/bin
export MANPATH=$MANPATH:$PGI/man
PGI ddddd CdC++dFortran 77 ddddddddd pgccdpgCC d pgf77d
dd Fortran 9x ddddddd pgf90dpgf901dpgf902dpgf90 ex d pgf95d
4.1.3
GNU C/C++ Fortran d dd dd
GNU C/C++ Fortran 4.1.2 ddddddddddddddddddddddd
dddddGNU ddddd CdC++ ddddddddd gcc d g++ddd Fortran
77 d 9x ddddddddd g77 d gfortrandgfortran dddddd Fortran 77 d
dddd g77 dddd Fortran 9x dddd
4 ddd OPENMP dddd
8
C/C++ dd d dd
4.2
dddddd C/C++ dddddddddddddddddddddd Intel d
dddddddddddddddddddddddddddddd
4.2.1
dddddddddddddd
ddddddddddddddddddddddddddddddddddd
dd 1d
d 1: dddddddddddd
ddd
dd
dd
C ddd
ddddd
C++ ddd
ddddd
ddd
dddddd
filename.i
ddddddd
ddddddd
filename.o
dddd
dddddd
filename.s
dddd
dddddd
filename.c
filename.C
filename.CC
filename.cc
filename.cpp
filename.cxx
filename.a
filename.so
ddddddddddddddddddddddddddddddddddd
d 2d
d 2: dddddddddddddd
ddd
dd
filename.i
ddddddddddd -p dddd
filename.o
dddddddd -c dddd
filename.s
dddddddd -s dddd
a.out
dddddddddd
4 ddd OPENMP dddd
4.2.2
9
Intel C/C++ d ddd dd ddd
• -Bdynamicddddddddddddddd
• -Bstatic dddddddddddd
• -cdddddddddd.o dddd
• -fastddddddddddddddddddddddddddddddddd
dddddddddddddddd
• -gdddddddd
• -ipdddddddddddddd(Interprocedural Optimizations-IPO)d
• -ipo[n]dddddddddddddddddd n ddddddddddd
• -I<ddddd>dddddddddddd
• -L<ddd>dddddddddd
• -l<ddd>ddddddddddddddd libxyz.adddd -lxyz ddd
• -o filedddddddddd
• -openmpd d d OpenMP d d d d d d d d d d d d d d d d d d d d d
d CPU dd OpenMP ddddddddddd -a openmp dddddddd
dddddddd
• -O<dd>ddddddddddd O2dO d O2 ddddddddO3 d
d O2 dddddddddddddddddddddddddddddddd
ddddddddddddddddddddddddddddddddddd
dddd
• -pddddddddd(Profile Guided Optimization-PGO)d
• -sharedd d d d d d d d d d d d d d d d d d d d d d d d d d d d d
d -fpic ddd
• -static ddddddddd
4 ddd OPENMP dddd
10
• -std=<dd>dddddd c89dc99dgnu89dgnu++98 d c++0xddddd
ddddd
• -wdddddddddddddddddd
• -wallddddddddddd
• -x <dd>dddddd cdc++dc-headerdcpp-outputdc++-cpp-outputd
assemblerdassembler-with-cpp d noneddddd c dddddddddddd
dddddddddd
ddddddddddddddddddddddddd IPOdPGO d HLO d
dddddddddddddddddddddddddddd Intel dddd
d Intel dddddddddddddd AMD Opteron Barcelona dddddddd
ddddddddd Intel XEON dddddddddddddddddddddd
ddddd
4.2.3
PGI C/C++ dd dd ddd dd
PGI ddddddddddddddddddddddddddddd C dd
d pgcc dddddddd C++ ddd pgCC dddddddddddd PGI dd
ddd
• ddddd
– -#dddddddddddddddddddd
– -cdddddddddd.o dddd
– -defaultoptions d -nodefaultoptionsdddddddddddddddd
– -flagsddddddddddddd
– -help[=option]ddddddddoption ddd groupsdasmddebugdlanguaged
linkerdoptdotherdoveralldphasedphasedpreprodsuffixdswitchdtarget d
variabled
– -Minform=levelddddddddddddddddlevel ddd fataldfiledsevered
warndinformdddd -Minform=warnd
4 ddd OPENMP dddd
11
– -noswitcherrordddddddddddddddddddddddddd
ddddddddddddddd
– -o filedddddddddd
– -showddddd pgcc dddddddd
– -silentdddddddddd -Minform=severe ddd
– -vddddddddddddddddddddd
– -Vddddddddddd
– -wdddddddddddddddddd
• ddddd
– -fastddddddddddddddddddddd pgcc -fast -help dd
ddddddddddddddd O2ddd -O ddd
– -fastssedddd SSE d SSE2 dddddddd Opteronddddddd
dddddddddddd pgcc -fastsse -help dddddddddddd
ddddd O2ddd -O ddd
– -fpic d -fPICdddddddddddddddddddddddddd
dddddddd
– -Kpic d -KPICdd-fpic d -fPIC dddddddddddddd
– -Minfo[=option[,option,. . . ]]d d d d d d d d d d d d d d d d d d
d alldautoinlinedinlinedipadloop d optdmpdtime d statd
– -Mipa[=option[,option,. . . ]] d -Mnoipadddddddddddddddd
ddd -Mnoipad
– -Mneginfo=option[,option. . . ]dddddddddddddddddddd
dddddd concurdloop d alld
– -Mnoopenmpdddd -mp dddddd OpenMP ddddd
– -Mnosgimpdddd -mp dddddd SGI ddddd
– -Mpfidddddddddddddddddddddddddddddd
ddddddddd-Mpfi ddddddddddddddddddddd
dddddd pgfi.outd
4 ddd OPENMP dddd
12
– -Mpfoddddddddddddddddddddddddd pgfi.outd
– -Mprof[=option[,option,. . . ]]dddddddddddddddddddd
ddddddddddd PGPROF dddddddd
– -mp[=option]ddddddddd OpenMP dddddddd
– -O[level]ddddddddlevel ddd 0d1d2d3d4ddd 4 d 3 ddd
– -pgddd gprof ddddddddddddd
• ddddd
– -gdddddddd
• dddddd
– -Cddddddd C dddddddd
– -D<name[=def]>dddddddd name d defd
– -dDddddddddddddddddddddd
– -dIddddddddddddddddddddddddddddd
– -dMddddddddddddddddddddddddddddddd
– -dNdd -dD ddddddddddddddddddddddd
– -Edddddd .c dddddddddddddddddddddddd
dddddd
– -I<ddddd>dddddddddddd
– -Mddd make ddddddddddd
– -MDddd make dddddddd file.dddd file dddddddddd
– -MMddd make dddddddddddddddddddd
– -MMDddd make dddddddd file.dddd file dddddddd
dddddddddddd
– -Pdddddddddddddd file.c dddddddddd file.id
– -U<name>dddddddddd name dddddd
4 ddd OPENMP dddd
13
• ddddd
– -Bdynamicdddddddddddddd
– -Bstaticdddddddddd
– -Bstatic pgi ddddddddddddd PGI dd
– -g77libsddddd GNU g77 d gcc ddddd
– -l<ddd>dddddddddddddd libxyz.adddd -lxyz ddd
– -L<ddd>dddddddddd
– -mdddddddd
– -Mrpath d -Mnorpathdddd -rpathdddddd PGI dddddd
ddd -Mnorpath dddddddd
– -pgf77libsdddddd pgf77 dddddddddddd
– -rddddddddddddddd
– -R<directory>ddddddddddd directory ddd
– -pgf90libsdddddd pgf90 dddddddddddd
– -sharedddddddddddddddddddddddddddddd
d -fpic ddd
– -soname<name>d d d d d d d d d d d d d DT SONAME d d d d
d named
– -u<name>dddddddddddddddddd
• ddddd
– -Bddddddd C++ dddddddddd // ddddddddd
dddddd -C ddddddddddddd
– -c8x d -c89dd C ddddd C89 ddd
– -c9x d -c99dd C ddddd C99 ddd
4 ddd OPENMP dddd
14
• ddddddd
– -Kieee d -Knoieeeddddddddddd IEEE 754 ddddd -Kieee d
dddddddddddddddddddddddddd -Knoieee dd
dddddddddddddd
– -Ktrap=[option,[option]. . . ]ddddddddddddddddddd divzd
fpdalignddenormdinexactdinvdnonedovfdunfdddd noned
– -Msecond underscore d -Mnosecond underscoredddddd d Fortran d
dddddd ddd g77 ddddddd g77 dddddddddd d
– -mcmodel=small|mediumdddddddddddddd 2GB(small)dd
dddddd 2GB(medium)dmedium ddd -Mlarge arrays ddd
– -tp targetdtarget d d d amd64damd64edbarcelonadbarcelona-64dk832dk8-64dk8-64edx64 dddddddddddddd
ddddddddddddddddddddddddddddddddddd
ddddddddddddddddddd AMD Opteron Barcelona ddddddd
dddddddddddddddd
4.2.4
GNU C/C++ ddd GCC d ddd dd
GNU ddd GCC d Linux ddddddddddddddddd 4.1.2 d 3.4.6d
ddddddddddddddddd 4.1.2 dddddddddddddddd
d GCC ddddd
• dddddddddd
– -x languagedddddddddddddddddddddlanguage ddd
∗ cdc-headerdc-cpp-output
∗ c++dc++-headerdc++-cpp-output
∗ objective-cdobjective-c-headerdobjective-c-cpp-output
∗ objective-c++ objective-c++-header objective-c++-cpp-output
∗ assemblerdassembler-with-cpp
4 ddd OPENMP dddd
15
∗ ada
∗ f95df95-cpp-input
∗ java
∗ treelang
d language d none ddddddddddddddddddddddd
ddd
– -cdddddddddd.o ddddddddddd
– -o filedddddddddd
– -vddddddddddddddddddddddd
– -###dddddddddddddddddddddddddddddd
ddddddddddddddddddd
– –helpdddddddd
– –target-helpddddddddddddd
– –versionddddddddddd
• C ddddd
– -ansidC dddddddd ISO C90 dddd C++ ddddddd ISO
C++ ddd GNU ddd
– -std=ddddddddddd c89diso9899:1990diso9899:199409dc99dc9xd
iso9899:1999diso9899:199xdgnu89dgnu99dgnu9xdc++98dgnu++98d
– -Bdddddddd C++ dddddddddd // ddddddddd
dddddd -C ddddddddddddd
– -c8x d -c89dd C ddddd C89 ddd
– -c9x d -c99dd C ddddd C99 ddd
• ddddd
– -fsyntax-onlydddddddddddddddddddddd
– -wdddddddddddddddddd
4 ddd OPENMP dddd
16
– -Wfatal-errorsdddddddddddddddddddddddddd
ddd
• ddddd
– -gdddddddd
– -ggdbddddd gbd dddddddddd
• ddddd
– -O[level]dddddddddddd level ddddd 0d1d2d3dsd
• dddddd
– -Cddddddd C dddddddd
– -D namedddddddd name ddd 1d
– -D name=defddddddd name d defd
– -U namedddddddddd name ddddd
– -undefdddddddd GCC ddddddddddddddddddd
– -dDdddddddddddddddddddd
– -dIdddddddddddddddddddddddddddddd
– -dMddddddddddddddddddddddddddddddd
– -dNdd -dD ddddddddddddddddddddddd
– -Eddddd .c ddddddddddddddddddddddddd
– -I<ddddd>dddddddddddd
– -Mddd make ddddddddddd
– -MDddd make dddddddd file.dddd file dddddddddd
– -MMddd make dddddddddddddddddddd
– -MMDddd make dddddddd file.dddd file dddddddd
dddddddddddd
– -Pdddddddddddddd file.c dddddddddd file.id
4 ddd OPENMP dddd
17
• ddddd
– -pieddddddddddddddddddddd
– -sdddddddddddddddd
– -rdynamicdddddddddddddddd
– -staticdddddddddd
– -sharedddddddddddddddddddddddddddddd
d -fpic ddd
– -shared-libgccddddd libgcc dd
– -static-libgccddddd libgcc dd
– -u <symbol>ddddd symbol dddddddddddddddddd
– -I<ddddd>dddddddddddd
– -l<ddd>dddddddddddddd libxyz.adddd -lxyz ddd
– -L<ddd>dddddddddd
– -B<dd>ddddddddddddddddddddddddd
• Intel 386 d AMD x86-64 ddddddd
– -mtune=cpu-typedddddddd CPU ddddddgenericdk8dopteron dd
– -march=cpu-typedddddddd CPU ddddddgenericdk8dopteron dd
– -mieee-fp d -mno-ieee-fpddddddddddd IEEE ddd
• dddddddd
– -fpicddddddddddddddddd
– -fPICddddddddddddddddddddd
– -fopenmpddd OpenMP ddddd
– -fpie d -fPIEdd -fpic d -fPIC dddddddddddddddddd
dddddddd
ddddddddddddddddddddddddddddddddddd
ddddddddddddddddddd AMD Opteron Barcelona ddddddd
dddddddddddddddd
4 ddd OPENMP dddd
4.2.5
18
C/C++ dd ddd d
• Intel C/C++ dddddddd
– icc -o yourprog yourprog.c
d C dd yourprog.c dddddddd yourprogd
– icpc -o yourprog yourprog.cpp
d C++ dd yourprog.cpp dddddddd yourprogd
– icc -o yourprog-omp -openmp yourprog.c
d OpenMP ddddd C dd yourprog-omp.c dddddddd yourprogompd
• PGI C/C++ dddddddd
– pgcc -o yourprog yourprog.c
d C dd yourprog.c dddddddd yourprogd
– pgCC -o yourprog yourprog.cpp
d C++ dd yourprog.cpp dddddddd yourprogd
– pgcc -o yourprog-omp -mp yourprog.c
d OpenMP ddddd C dd yourprog-omp.c dddddddd yourprogompd
• GNU C/C++ dddddddd
– gcc -o yourprog yourprog.c
d C dd yourprog.c dddddddd yourprogd
– g++ -o yourprog yourprog.cpp
d C++ dd yourprog.cpp dddddddd yourprogd
– gcc -o yourprog-omp -fopenmp yourprog.c
d OpenMP ddddd C dd yourprog-omp.c dddddddd yourprogompd
4 ddd OPENMP dddd
19
Fortran d dd d d
4.3
4.3.1
dddddddddddddd
ddddddddddddddddddddddddddddddddddd
dd 3d
ddd
filename.a
d 3: dddddddddddddd
dd
dd
ddddd
ddddd
filename.f
filename.for
filename.ftn
ddddd Fortran ddd
d Fortran ddddd
ddddd Fortran ddd
ddd Fortran ddddddddddd
ddddd Fortran ddd
d Fortran ddddd
ddddd Fortran ddd
ddd Fortran ddddddddddd
filename.i
filename.fpp
filename.FPP
filename.F
filename.FOR
filename.FTN
filename.f90
filename.i90
filename.F90
filename.s
dddd
dddddd
filename.so
ddd
dddddd
filename.o
dddd
dddddd
ddddddddddddddddddddddddddddddddddd
d 4d
4.3.2
Intel Fortran d dd ddd ddd
• -Bdynamicdddddddddddddd
• -Bstatic dddddddddddd
4 ddd OPENMP dddd
d 4: dddddddddddd
dd
dddd
ddd
filename.o
dddd
filename.so
ddddd
ddddd -c dddd
ddddddddddddd -shareddddd -c
filename.mod
dddd
dddd MODULE ddddddddd
filename.s
dddd
ddddd -S dddd
a.out
20
dddddddddd
ddddddd -c ddd
• -cdddddddddd.o dddd
• -convert [ddd]dddddddddddddddddd big endian d little
endian ddddddddddddddd big endian d little endian ddddd
ddddddddddddd
• -cppdddddddddddddd -fppd
• -extend-source[size]dddddddd Fortran dddddddd size dd 72d80
d 132dddddd -72d-80 d -132 dddddd 72 ddd
• -fastddddddddddddddddddddddddddddddddd
ddddddd
• -fixedddd Fortran ddddddddddddddddddddddd
• -fpicddddddddddddddddddddddddddddddd
d -fPICdddd -fno-picd
• -freeddd Fortran ddddddddddddddddddddddd
• -gdddddddd
• -ipdddddddddddddd(Interprocedural Optimizations-IPO)d
• -ipo[n]dddddddddddddddddd n ddddddddddd
• -I<ddddd>dddddddddddd
4 ddd OPENMP dddd
21
• -implicitnonedddddddddddddddddddddd implicit none d
ddddddddddddddddddd
• -L<ddd>dddddddddd
• -l<ddd>dddddddddddddddd libxyz.adddd -lxyz ddd
• -nofreeddd Fortran ddddddddd
• -openmpd d d OpenMP d d d d d d d d d d d d d d d d d d d d
d d d d d CPU d d OpenMP d d d d d d d d d d d -a openmp -R
“span[hosts=1]” dddddddddddddddd
• -O<dd>ddddddddddd O2dO d O2 ddddddddO3 d
d O2 dddddddddddddddddddddddddddddddd
ddddddddddddddddddddddddddddddddddd
dddd
• -pddddddddd(Profile Guided Optimization-PGO)d
• -sharedd d d d d d d d d d d d d d d d d d d d d d d d d d d d d
d -fpic ddd
• -stand <dd>dddd Fortran ddddddddddddddddddd
ddddddddddd f03df90df95 d nonedddddddddd Fortran
2003d90d95 dddddddddddddddddddddddd -std<d
d>ddddddd fddd 03d90d95d
• -staticddddddddd
• -unroll[n]dddddddddddddddddd
• -usdddddddddddddddddddddddddd -assume underscoredddddddd
dddddddddddddddddd
• -wdddddddddddddddddd
• -wallddddddddddd
4 ddd OPENMP dddd
22
• -Xdddddddddddddddddd -I dddddddddddddd
ddddddddddddddddddddddddd IPOdPGO d HLO d
dddddddddddddddddddddddddddd Intel dddd
d Intel dddddddddddddd AMD Opteron Barcelona dddddddd
ddddddddd Intel XEON dddddddddddddddddddddd
ddddd
4.3.3
PGI Fortran d ddd dd ddd
PGI ddddddddddddddddddddddddddd Fortran 9x d
dd pgf90 ddddddd Fortran 77 ddd pgf77 dddddddddddddd
dddd PGI ddddd
• ddddd
– -#dddddddddddddddddd
– -cdddddddddd.o dddd
– -defaultoptions d -nodefaultoptionsdddddddddddddddd
– -flagsddddddddddddd
– -help[=option]ddddddddoption ddd groupsdasmddebugdlanguaged
linkerdoptdotherdoveralldphasedphasedpreprodsuffixdswitchdtarget d
variabled
– -Minform=levelddddddddddddddddlevel ddd fataldfiled
severedwarndinformdddd -Minform=warnd
– -noswitcherrordddddddddddddddddddddddddd
dddddddddddddd
– -o filedddddddddd
– -showddddd pgf90 dddddddd
– -silentdddddddddd -Minform=severe ddd
– -vddddddddddddddddddddddd
4 ddd OPENMP dddd
23
– -Vddddddddddd
– -wdddddddddddddddddd
• ddddd
– -fastddddddddddddddddddddd pgf90 -fast -help dd
ddddddddddddddd O2ddd -O ddd
– -fastssedddd SSE d SSE2 dddddddd Opteronddddddd
dddddddddddddd pgcc -fastsse -help dddddddddd
ddddddd O2ddd -O ddd
– -fpic d -fPICddddddddddddddddddddddddddd
dddddddd
– -Kpic d -KPICdd-fpic d -fPIC dddddddddddddd
– -Minfo[=option[,option,. . . ]]dddddddddddddddddddd
d alldautoinlinedinlinedipadloop d optdmpdtime d statd
– -Mipa [=option[,option,. . . ]] d -Mnoipaddddddddddddddd
ddd -Mnoipad
– -Mneginfo=option[,option. . . ]dddddddddddddddddddd
dddddddd concurdloop d alld
– -Mnoopenmpdddd -mp dddddd OpenMP ddd
– -Mnosgimpdddd -mp dddddd SGI ddddd
– -Mpfidddddddddddddddddddddddddddddd
dddddddddddd-Mpfi dddddddddddddddddd
ddddddddd pgfi.outd
– -Mpfodddddddddddddddddddddddddd pgfi.outd
– -Mprof[=option[,option,. . . ]]dddddddddddddddddddd
ddddddddddd PGPROF dddddddddd
– -mp[=option]ddddddddd OpenMP dddddddd
– -O[level]ddddddddlevel ddd 0d1d2d3d4ddd 4 d 3 ddd
4 ddd OPENMP dddd
24
– -pgddd gprof ddddddddddddd
• ddddd
– -gdddddddd
• dddddd
– -Cddddddd C dddddddd
– -D<name[=def]>ddddddd name d defd
– -dDdddddddddddddddddddd
– -dIdddddddddddddddddddddddddddddd
– -dMddddddddddddddddddddddddddddddd
– -dNdd -dD dddddddddddddddddddddddd
– -Eddddd .c ddddddddddddddddddddddddd
– -I<ddddd>dddddddddddd
– -Mddd make ddddddddddd
– -MDddd make dddddddd file.dddd file dddddddddd
– -MMddd make dddddddddddddddddddd
– -MMDddd make dddddddd file.dddd file dddddddd
dddddddddddd
– -Pdddddddddddddd file.c dddddddddd file.id
– -U<name>ddddddd name dddddd
• ddddd
– -Bdynamicddddddddddddd
– -Bstaticdddddddddd
– -Bstatic pgi dddddddddddddd PGI dd
– -g77libsddddd GNU g77 d gcc ddddd
– -l<ddd>dddddddddddddd libxyz.adddd -lxyz ddd
4 ddd OPENMP dddd
25
– -L<ddd>dddddddddd
– -mdddddddd
– -Mrpath d -Mnorpathdddd -rpathdddddd PGI dddddd
ddd -Mnorpath dddddddd
– -pgf77libsdddddd pgf77 dddddddddddd
– -rddddddddddddddd
– -R<directory>ddddddddddd directory ddd
– -pgf90libsdddddd pgf90 dddddddddddd
– -sharedddddddddddddddddddddddddddddd
d -fpic ddd
– -soname<name>d d d d d d d d d d d d d DT SONAME d d d d
d named
– -u<name>dddddddddddddddddd
• ddddd
– -byteswapio d -Mbyteswapioddddd Fortran ddddddddddd
dddbig-endiandddddlittle-endianddddddddddddddd
ddddd Sun d SGI ddddddddd Fortran ddddd
– -i2dd INTEGER dddd 2 ddddd
– -i4dd INTEGER dddd 4 ddddd
– -i8ddddd INTEGER d LOGICAL dddd 4 ddddd
– -i8storageddINTEGER d LOGICAL dddd 8 ddd
– -Mallocatable[=95|03]ddd Fortran 95 d 2003 ddddddd
– -Mbackslash d -Mnobackslashddddd(\)ddddddddddddd
ddddd -Mnobackslashd-Mnobackslash ddddd C ddddddd
dddddddddddddd-Mbackslash ddddddddddddd
dddd
– -Mextenddddddddddd 132 dd
4 ddd OPENMP dddd
26
– -Mfixedd-Mnofree d -Mnofreeformddddddddddddddddd
ddddd .f d .F dddddddddd
– -Mfree d -Mfreeformd d d d d d d d d d d d d d d d d d d d d
d .f90d.F90d.f95 d .F95 dddddddddd
– -Mi4 d -Mnoi4dd INTEGER dd INTEGER*4d-Mnoi4 d INTEGER d
d INTEGER*2d
– -Mnomainddddddddddd Fortran ddddddddd
– -Mr8 d -Mnor8dd REAL dd DOUBLE PRECISIONddd(REAL)dd
ddddd(DOUBLE PRECISION)dddddddd
– -Mr8intrinsics [=float] d -Mnor8intrinsicsdd CMPLX dd DCMPLXd
d REAL dd DBLEddd float ddddd FLOAT dd DBLEd
– -Msave d -Mnosavedddddddddddd SAVE dddddddd
– -Mupcase d -Mnoupcasedddddddddddd-Mnoupcase dddd
ddddddddddddddd -Mupcasedddddd X dddd x d
ddddddddddddd
– -Mcray=pointerddd Cray ddddd
– -module directoryddddddddddddddddddd
– -r4dd DOUBLE PRECISION dddd REALd
– -r8dd REAL dddd DOUBLE PRECISIONd
• ddddddd
– -Kieee d -Knoieeeddddddddddd IEEE 754 dddddddd
dd -Kieee dddddddddddddddddddddddddd
d -Knoieee dddddddddddddddd
– -Ktrap=[option,[option]. . . ]dddddddddddddddddddd
d divzdfpdalignddenormdinexactdinvdnonedovfdunfdddd noned
– -Mlarge arrays d -Mnolarge arraysddddddddd 2GBddddd
ddddd -mcmodel=medium ddd -Mlarge arrays ddd
4 ddd OPENMP dddd
27
– -mcmodel=small|mediumddddddddddddddd 2GB(small)d
ddddddd 2GB(medium)dmedium ddd -Mlarge arrays ddd
– -Msecond underscore d -Mnosecond underscoreddddddd
d For-
tran ddddddd ddddd g77 ddddddg77 dddddddd
dd d
– -Mvarargs d -Mnovarargsdddddd Fortran dd C dddddddd
dddddddddd
– -tp targetdtarget d d d amd64damd64edbarcelonadbarcelona-64dk832dk8-64dk8-64edx64 dddddddddddddd
ddddddddddddddddddddddddd IPAdPGA dddd
dddddddddddddddddddddddddddddddd AMD
Opteron Barcelona dddddddddddddddddddddd
4.3.4
GNU Fortran dd ddd ddd d
GNU Fortran dddd Linux ddddd Fortran ddddddddddd
d 4.1.2dddddd gcc dddddddddddddd 4.1.2 d gfortran dddd
ddddddddddddd GNU Fortran d gcc dddddd
• dd Fortran dddddddd
– -ffree-form d -ffixed-formdddddddddddddddddddd
d Fortran 90 dddddddddddddd Fortran 77 ddddddd
dddd
– -fdefault-double-8ddd DOUBLE PRECISION ddd 8 ddd
– -fdefault-integer-8ddd INTEGER d LOGICAL ddd 8 ddd
– -fdefault-real-8ddd REAL ddd 8 ddd
– -fno-backslashddddd(\)ddddddddddddddd
– -ffixed-line-length-<n>dddddddddddddd nd
– -ffree-line-length-<n>dddddddddddddd nd
4 ddd OPENMP dddd
28
– -fmax-identifier-length=<n>ddddddddddddd ndFortran 95 d
200x dddddd 31 d 65d
– -fimplicit-noneddddddddddddddddddddddd
– -fcray-pointerddd Cray ddddd
– -fopenmpddd OpenMP ddddd
– -std=<std>ddd Fortran dddstd ddd f95df2003dlegacyd
– -M<dir> d -J<dir>dddddddddddddddddd
– -fconvert=<conversion>ddddddd Fortran dddddddddd
dddddnativedddddswapdddddddddddbig-endiand
ddddlittle-endiandddddddddddbig-endianddddddd
ddlittle-endianddddddddd
• ddddd
– -cdddddddddd.o ddddddddddd
– -o filedddddddddd
– -vddddddddddddddddddddddd
– -###dddddddddddddddddddddddddddddd
ddddddddddddddddddd
– –helpdddddddd
– –target-helpddddddddddddd
– –versionddddddddddd
• ddddd
– -fsyntax-onlydddddddddddddddddddddd
– -wdddddddddddddddddd
– -Wfatal-errorsddddddddddddddddddddd
• ddddd
– -gdddddddd
4 ddd OPENMP dddd
29
– -ggdbddddd gbd dddddddddd
• ddddd
– -O[level]dddddddddddd level ddddd 0d1d2d3dsd
• dddddd
– -Cddddddd C dddddddd
– -D nameddddddddd name ddd 1d
– -D name=defdddddddd name d defd
– -U namedddddddddd name ddddd
– -undefdddddddd GCC ddddddddddddddddddd
– -dDdddddddddddddddddddd
– -dIdddddddddddddddddddddddddddd
– -dMddddddddddddddddddddddddddddd
– -dNdd -dD ddddddddddddddddddddddd
– -Edddddddddddddddddddddddddddddd
– -I<ddddd>dddddddddddd
– -Mddd make ddddddddddd
– -MDddd make dddddddd file.dddd file dddddddddd
– -MMddd make ddddddddddddddddddd
– -MMDddd make dddddddd file.dddd file dddddddd
dddddddddddd
– -Pdddddddddddddd file.c dddddddddd file.id
• ddddd
– -pieddddddddddddddddddddd
– -sdddddddddddddddd
– -rdynamicdddddddddddddddd
4 ddd OPENMP dddd
30
– -staticdddddddddd
– -sharedddddddddddddddddddddddddddddd
d -fpic ddd
– -shared-libgccddddd libgcc dd
– -static-libgccddddd libgcc dd
– -u <symbol>ddddd symbol dddddddddddddddddd
– -I<ddddd>dddddddddddd
– -l<ddd>dddddddddddddd libxyz.adddd -lxyz ddd
– -L<ddd>dddddddddd
– -B<dd>ddddddddddddddddddddddddd
• Intel 386 d AMD x86-64 ddddddd
– -mtune=cpu-typedddddddd CPU ddddddgenericdk8dopteron dd
– -march=cpu-typedddddddd CPU ddddddgenericdk8dopteron dd
– -mieee-fp d -mno-ieee-fpddddddddddd IEEE ddd
• dddddddd
– -fno-automaticdddddddddddddddddddd SAVE ddd
– -ff2cdd g77 d f2c dddddddd
– -fno-underscoringdddddddd ddddgfortran ddddd g77 d f2c
ddddddddddd -ff2c ddddddddddddddddddd
ddddddddd -fno-underscoring ddd
– -funderscoringdddddddd
dd ddddd Fortran dddddd
– -fsecond-underscoreddd gfortran ddddddddd ddddddd
ddddddddd ddddddd -fno-underscoring dddddddd
dddd -ff2c dddddd
– -fpicddddddddddddddddd
– -fPICddddddddddddddddddddd
4 ddd OPENMP dddd
31
– -fpie d -fPIEdd -fpic d -fPIC dddddddddddddddddd
ddddddd
ddddddddddddddddddddddddddddddddddd
ddddddddddddddddddd AMD Opteron Barcelona ddddddd
ddddddddddddddd
4.3.5
Fortran dd dd dd
• Intel Fortran dddddddd
– ifort -o yourprog yourprog.for
d Fortran 77 dd yourprog.for dddddddd yourprogd
– ifort -o yourprog -static yourprog.f90
d Fortran 90 dd yourprog.f90 dddddddddd yourprogd
– ifort -o yourprog-omp -openmp yourprog.f90
d OpenMP ddddd Fortran 90 dd yourprog-omp.f90 ddddddd
d yourprog-ompd
• PGI Fortran dddddddd
– pgf77 -o yourprog yourprog.for
d Fortran 77 dd yourprog.for dddddddd yourprogd
– pgf90 -o yourprog -static yourprog.f90
d Fortran 90 dd yourprog.f90 dddddddddd yourprogd
– pgf90 -o yourprog-omp -mp yourprog.f90
d OpenMP ddddd Fortran 90 dd yourprog-omp.f90 ddddddd
d yourprog-ompd
• GNU Fortran dddddddd
– g77 -o yourprog yourprog.for
d Fortran 77 dd yourprog.for dddddddd yourprogd
– gfortran -o yourprog -static yourprog.f90
d Fortran 90 dd yourprog.f90 dddddddddd yourprogd
4 ddd OPENMP dddd
32
– gfortran -o yourprog-omp -fopenmp yourprog.f90
d OpenMP ddddd Fortran 90 dd yourprog-omp.f90 ddddddd
d yourprog-ompd
dddg77 ddd OpenMPddddd Fortran 90 dddddd gfortran d
d Fortran 77 ddd
4.4
OpenMP d dd d dd d d
InteldPGIdGNU d d d d d OpenMP d d d d d d d d d d d d d d d
dd OpenMP dddddddddddddddddddd OpenMP dddd
d -openmpd-mpd-fopenmpd
• Intel dddd
– icc -o yourprog-omp -openmp yourprog.c
d OpenMP d C dd yourprog-omp.c dddddddd yourprog-ompd
– ifort -o yourprog-omp -openmp yourprog.f90
d OpenMP d Fortran 90 dd yourprog-omp.f90 dddddddd yourprogompd
• PGI dddd
– pgcc -o yourprog-omp -mp yourprog.c
d OpenMP d C dd yourprog-omp.c dddddddd yourprog-ompd
– pgf90 -o yourprog-omp -mp yourprog.f90
d OpenMP d Fortran 90 dd yourprog-omp.f90 dddddddd yourprogompd
• GNU dddd
– gcc -o yourprog-omp -fopenmp yourprog.c
d OpenMP d C dd yourprog-omp.c dddddddd yourprog-ompd
– gfortran -o yourprog-omp -fopenmp yourprog.f90
d OpenMP d Fortran 90 dd yourprog-omp.f90 dddddddd yourprogompd
4 ddd OPENMP dddd
33
OpenMP dddddddddddddddddd OMP NUM THREADS d
ddddddddd bash ddd export OMP NUM THREADS=8 ddddddd
ddddddddddddddddddddddddddddddddddd
ddddd CPU dddd OpenMP ddddddddddddd -a openmp -R
“span[hosts=1]” dddddddddddddd
5 MPI dddddd
34
MPI dddd dd
5
d d d d d d d d d d InfiniBandd d d d d d d d d d d d d d d d d
d d d d InfiniBand d d d d d d d d d d d d d d d d MPI d d d d d d
d Infiniband d d d Open MPI d MVAPICHd1 d 2 d d d d d d d d d d d
d InteldPGIdGNU ddddddddddddddddd /usr/mpi/intel/openmpi1.4.1ddddddd mpi-selector-menu ddddddddddddd MPI dddd
ddddddd ud
Current system default: openmpi intel−1.4.1
Current user default : <none>
”u” and ”s” modifiers can be added to numeric and ”U”
commands to specify ”user” or ”system−wide”.
1. mvapich2 gcc−1.4.1
2. mvapich2 intel−1.4.1
3. mvapich2 pgi−1.4.1
4. mvapich gcc−1.2.0
5. mvapich intel−1.2.0
6. mvapich pgi−1.2.0
7. openmpi gcc−1.4.1
8. openmpi intel−1.4.1
9. openmpi pgi−1.4.1
U. Unset default
Q. Quit
Selection (1−9[us], U[us], Q):
5.1
MPI d d dd d dd
Open MPI d MVAPICH/MVAPICH2 dddddddddmpiccdmpic++dmpicxxdmpiCCd
mpif77 d mpif90ddddddddddddddddddddddddd
• mpicc -o yourprog-mpi yourprog-mpi.c
d C ddd MPI dddd yourprog-mpi.c dddddddd yourprog-mpid
• mpicxx -o yourprog-mpi yourprog-mpi.cpp
d C++ ddd MPI dddd yourprog-mpi.cpp dddddddd yourprogmpiddddd mpic++ d mpiCCd
5 MPI dddddd
35
• mpif77 -o yourprog-mpi yourprog-mpi.f
d Fortran 77 ddd MPI dddd yourprog-mpi.f dddddddd yourprogmpid
• mpif90 -o yourprog-mpi yourprog-mpi.f90
d Fortran 90 ddd MPI dddd yourprog-mpi.f90 dddddddd yourprogmpid
MPI ddddddddddddddd InteldPGIdGCC ddddddddd
dddddddddddddddd
5.2
MPI d d dd d dd
dddddddMPI ddddddddddddd LSF ddddddd bsub d
dddddddd bsub -q normal -o log -e err file -n 8 mpiibjob ./yourprogmpidddddddd mpiibjob d mpip4job dddddd InfiniBand dddddd
d MPI dddddddddddddddddd
5.3
MPI d d dd d d
ddddddddddddddddddddddddddddddddddd
dddddddddddddddddddddddddddddd
6 ddddd
36
ddddd
6
dddddddddddddddd Intel Math Kernel Library(MKL)dAMD
Core Math Library (ACML)dddddddddddddd /opt/lib ddddddd
dd libgoto barcelonap-r1.26-intel.a ddd Intel dddddd goto ddddddd
dddddddddddddddd
6.1
Intel MKL
ddddd MKL ddd 11.1.064dddd /opt/intel/Compiler/11.1/064/mkl/libd
dd i386 d AMD64(em64t) ddddddddddddd 32 d em64tdddd
d AMD64 dddddddd bash dddddd ˜/.bashrc ddddddddddd
ddd MKL ddddddd INCLUDEdLD LIBRARY PATH d MANPATH dd
. /opt/intel/Compiler/11.1/064/mkl/tools/environment/mklvarsem64t.sh
6.1.1
MKL d dd d
MKL ddddddddd
• dddddddddd(BLAS)
• ddddddddd(Sparse BLAS)
• ddddd(LAPACK)
• ddddddddd(ScaLAPACK)
• dddddd(Sparse Solver routines)
• ddddddd(Vector Mathematical Library functions)
• ddddddd(Vector Statistical Library functions)
• ddddddd(Fourier Transform functions (FFT))
• dddddddddd(Cluster FFT)
• dddddd(Interval Solver routines)
6 ddddd
37
• dddddd(Trigonometric Transform routines)
• d d d d d d d d d d d d d d d(Poisson, Laplace, and Helmholtz Solver
routines)
• ddddddddddd(Optimization (Trust-Region) Solver routines)
6.1.2
MKL d dd d
MKL ddddddddddd 5d
d 5: MKL dddd
dd
dd
<mkl dir>
MKL dddddd /opt/intel/Compiler/11.0/081
<mkl dir>/benchmarks/linpack
dd OpenMP dd LINPACK ddddd
<mkl dir>/benchmarks/mp linpack
dd MPI dd LINPACK ddddd
<mkl dir>/doc
MKL dddd
<mkl dir>/examples
ddddddddddddd
<mkl dir>/include
dd INCLUDE dd
<mkl dir>/interfaces/blas95
dd BLAS d Fortran 90 dddddddddd makefile
<mkl dir>/interfaces/LAPACK95
dd LAPACK dFortran 90 dddddddddd makefile
<mkl dir>/interfaces/fftw2xc
dd 2.x d FFTW(C dd)dddddddddd makefile
<mkl dir>/interfaces/fftw2xf
dd 2.x d FFTW(Fortran dd)dddddddddd makefile
<mkl dir>/interfaces/fftw3xc
dd 3.x d FFTW(C dd)dddddddddd makefile
<mkl dir>/interfaces/fftw3xf
dd 3.x d FFTW(Fortran dd)dddddddddd makefile
<mkl dir>/interfaces/fftw2x cdft
dd 2.x d MPI FFTW(dd FFT)dddddddddd makefile
<mkl dir>/lib/32
dd IA32 ddddddddddddd
<mkl dir>/lib/em64t
dd EM64T ddddddddddddd
<mkl dir>/man/man3
MKL d man dd
<mkl dir>/tests
dddddd
<mkl dir>/tools/builder
ddddddddddddddddd
<mkl dir>/tools/environment
ddddddddddd shell dd
<mkl dir>/tools/support
dddd Intel Premier dddddddd ID dddddddd
6 ddddd
6.1.3
38
d d MKL
dddddddd MKL ddd libyyy.a d libyyy.sodddddddddd
• dddddddddddddddddddddddd
<ld> myprog.o /opt/intel/Compiler/11.0/081/em64t/libmkl solver.a \
/opt/intel/Compiler/11.0/081/em64t/libmkl intel.a \
/opt/intel/Compiler/11.0/081/em64t/libmkl intel thread.a \
/opt/intel/Compiler/11.0/081/em64t/libmkl core.a \
/opt/intel/Compiler/11.0/081/em64t/libguide.so -lpthread
dd <ld> dddddddd lddmyprog.o ddddddddd
• ddddddd MKL ddddddddd libpthreadd
dddddddd -L<path> dddddddddddddddddddddd
dddd -I<include>ddddddddddddd
ddddddddddd mklvarsem64t.sh ddd MKL dddddddddd
ddddddddddddddddddddd -l<dd>dddddddddd
dd MKL dddddddddddddd
−L<MKL path> −I<MKL path>
[−lmkl LAPACK95] [−lmkl blas95]
[ cluster components]
[{−lmkl {intel, intel lp64 , intel ilp64 , intel sp2dp , gf , gf lp64 , gf ilp64 }]
[−lmkl {intel thread, sequential }]
[{−lmkl solver, −lmkl solver lp64, −lmkl solver ilp64}]
{{[−lmkl LAPACK] −lmkl {ia32, em64t, ipf}},
−lmkl core}}
[{−lguide, −liomp5}] [−lpthread] [−lm]
ddddddddddddddddddddddddddd -l dddd
ddddddddddddddd $MKLPATH/libmkl core.a dd -lmkl coredd
d $MKLPATH dddddddd MKL ddddddddd
6 ddddd
6.2
39
ACML
6.2.1
ACML dd
AMD Core Math Library (ACML) ddddddddddddddddd AMD64
ddddddd OpterondddddddACML ddddd FORTRAN 77 d C dd
dddddddd
• BLAS - ddddddddddddddddddddddddd(Sparse BLAS)
• LAPACK - ddddd
• FFT - ddddddd
• RNG - dddddddddddddd
dd ACML ddd /opt/acml4.4.0ddddddddddddddddd 6d
d 6: ACML dddd
6.2.2
dd
dd
ifort32
dd 64 d Intel dddddddd OpenMP ddddd
ifort32 mp
ddddd 32 d Intel ddddddd OpenMP ddddd
ifort64
dd 64 d Intel dddddddd OpenMP ddddd
ifort64 mp
ddddd 64 d Intel ddddddd OpenMP ddddd
pgi32
dd 64 d PGI dddddddd OpenMP ddddd
pgi32 mp
ddddd 32 d PGI ddddddd OpenMP ddddd
pgi64
dd 64 d PGI dddddddd OpenMP ddddd
pgi64 mp
ddddd 64 d PGI ddddddd OpenMP ddddd
gfortran32
dd 64 d gfortran dddddddd OpenMP ddddd
gfortran32 mp
ddddd 32 d gfortran ddddddd OpenMP ddddd
gfortran64
dd 64 d gfortran dddddddd OpenMP ddddd
gfortran64 mp
ddddd 64 d gfortran ddddddd OpenMP ddddd
ddddd
• Intel dddddddd
6 ddddd
40
– ifort driver.f -L/opt/acml4.2.0/ifort64/lib -lacml
– gcc -c -I/opt/acml4.2.0/ifort64/include driver.c
ifort -nofor-main driver.o -L/opt/acml4.2.0/ifort64/lib -lacml
– ifort -openmp driver.f -L/opt/acml4.2.0/ifort64 mp/lib -lacml mp
– ifort -openmp driver.f -L/opt/acml4.2.0/ifort32 mp/lib -lacml mp
• PGI dddddddd
– pgf77 -tp=k8-64 -Mcache align driver.f -L/opt/acml4.2.0/pgi64/lib -lacml
– pgf77 -tp=k8-32 -Mcache align driver.f -L/opt/acml4.2.0/pgi32/lib -lacml
– pgf77 -tp=k8-64 -mp -Mcache align driver.f -L/opt/acml4.2.0/pgi64 mp/lib
-lacml mp
– pgf77 -tp=k8-32 -mp -Mcache align driver.f -L/opt/acml4.2.0/pgi32 mp/lib
-lacml mp
– pgcc -c -tp=k8-64 -mp -Mcache align -I/opt/acml4.2.0/pgi64 mp/include driver.c
pgcc -tp=k8-64 -mp -Mcache align driver.o -L/opt/acml4.2.0/pgi64 mp/lib lacml mp -lpgftnrtl -lm
• GNU dddddddd
– gfortran -m64 driver.f -L/opt/acml4.2.0/gfortran64/lib -lacml
– gfortran -m64 driver.f -L/opt/acml4.2.0/gfortran64/lib -static -lacml
– gfortran -m64 driver.f /opt/acml4.2.0/gfortran64/lib/libacml.a
– gfortran -m32 driver.f -L/opt/acml4.2.0/gfortran32/lib -lacml
– gfortran -fopenmp -m64 driver.f -L/opt/acml4.2.0/gfortran64 mp/lib -lacml mp
– gfortran -fopenmp -m32 driver.f -L/opt/acml4.2.0/gfortran32 mp/lib -lacml mp
– gcc -m64 -I/opt/acml4.2.0/gfortran64/include driver.c -L/opt/acml4.2.0/gfortran64/lib
-lacml -lgfortran
ddd
• 32 d 64 ddddddd 32 d 64 ddddddd
6 ddddd
41
• dd mp dddddd OpenMP dddddddd
• dddddddddddddd ˜/.bashrcdddddddddddddddd
ddddddddd COMPILER ddd ifort64 dddd
export LD LIBRARY PATH=$LD LIBRARY PATH:/opt/acml4.2.0/COMPILER/lib
6.2.3
ACML MVd
dd d d d d d d d d d
ACML MV ddddddddddddd/ddddddddd sindcosdexp dd
dddddddd AMD64 ddddddddddd 64 dd ACMLdddddd
ddddddddddddddddddddd fast ddddddd cos ddd
d fastcosddddddddddd vrd2 dvrd4 dvrda dvrs4 dvrs8 dvrsa ddd
dd d dddddds dddddda ddddd2d4d8 dddddddddddd
dd vrd4 log dddd 4 ddddddddddddd log ddddddddddd
dd ACML ddd
d d d d d d d d d d d d d d d d d d d d ACML d d d d d d d d
d Intel 64 ddddddddd -L/opt/acml4.2.0/ifort64/lib -lacml mvddddd
d acml mvddd acmld
7 dddddd
42
dddddd
7
dddddd Platform ddd LSF ddddddddddddddddddd
ddddddddddd bsub ddddddddddddddddddddddd
dd bsub dddddddd bsub dddddddddddddddddd
• ddddddddddddddddddddddddddddddd
• dddddddddddddddddddddddddddddddd
dd d dd bsub
7.1
dddddd bsub ddddddddddd bsub [options] command [arguments]ddd options dddddCPU dddddddddd command ddddd
ddd command ddddarguments ddddddddddddddddddddd
dd command dddddddddddddddddddddddddddddd
dd
7.1.1
d ddd dd ddbsub -q
ddddd 38 d TC2600 dddddnode10 - node47ddddddd16GB d
ddddd A620r-F dddio1 - io5ddddddd8GB dddddd A950r-F dd
dnode48 d node49dddd 32 dd64GB dddddd -q ddddddddddd
ddddddddd2 d
• normald d d d d CPU d d d d d d d d d d d d d io1 - io5dnode10 node47 ddddddddddd
• longddddd CPU dddddddddddd io1 - io5dnode10 - node46 d
ddd
• serialddddd CPU ddddddddddd node47 dddd
• fatddddd CPU ddddddddddd 32 ddddddddddddd
d node48 dddddddddddddddddddddddddddddd
dddddddddddddddddddddddddddddd
2
dddddddddddddddddddddddddddddddd bqueues -l dddd
7 dddddd
43
dddddd normal dddddddd executable1dddd
bsub -q normal executable1 d bsub executable1
dddddddddddddddddd
Job <79722> is submitted to default queue <normal>.
dd 79722 dddddddddddddddddddddddddddddd
7.1.2
d ddd dd dbsub -q serial
dddddddddddddd serialdddd
bsub -q serial executable-serial
7.1.3
d ddd dd CPU dd dbsub -n
dd -n dddddddd CPU ddddddddddddddddddddd
ddddddddd -n 8 ddddd MPIdd mpiibjob d mpip4job dddddd
bsub -q normal -n 8 mpiibjob executable-mpi1
dddddddddddddd -q long d -q fat dddd long d fat ddd
7.1.4
d d MPI dd dbsub -n NUM mpiibjob|mpip4job
dddddd MPI ddddddd mpiibjob d mpip4job dddd InfiniBand d
ddddddddddddddddddddddddddddddddddddd
dddddddddddddddddddddddddd InfiniBand dddddd
ddddddddddddddddddddddddddddddd -n ddddd
dd CPU ddddddddddd 16 d CPU ddddd InfiniBand ddd MPI d
d executable-mpi1d
bsub -q long -n 16 mpiibjob executable-mpi1
7.1.5
d d OpenMP ddd dd ddbsub -a openmp -R “span[hosts=1]”
dddddddddddddd OpenMP dddddddddddddd -a
openmp -R “span[hosts=1]” ddd
bsub -a openmp -R “span[hosts=1]” -q normal -n 8 executable-omp1
7 dddddd
7.1.6
44
d ddd dd ddbsub -x
ddddddddddddddddd -x ddd
bsub -x -q normal -n 8 executable-omp1
dddddddddddddddddddddddddddddddddd
ddddddddddddddddddddddddddddddddddddd
dddddddddddddddddddddddddddddddddddd
dddddddddddddddddddddddddddddddddddd
d CPU ddddddd
7.1.7
d ddd dd ddd ddd bsub -i -o -e
dddddddddddddddddddddddddddddddd -ido d -e dddddddddddddddddddddddddddddddddd
dddddd %J ddddddddddd executable1 ddddddddddddd
ddddddexecutable1.inputdexecutable-ddd.log d executable1-ddd.errd
bsub -i executable1.input -o executable1-%J.log -e executable1-%J.err
executable1
7.1.8
d ddd dd ddbsub -I
ddddddddddddddddddddddddddddddddddd
ddd -I ddddddddddddddddddddddddddddddddd
dddd -Ip d -Isd
bsub -I executable1
7.2
d dd dd bkill
dd bkill ddddddddddddddddddddddd
bkill 79722
ddddddddddddddddd
Job <79722> is being terminated
7 dddddd
7.3
45
dd d dd bstop
dd bstop dddddddddddddddddddddddd
bstop 79727
ddddddddddddddddd
Job <79727> is being stopped.
ddddddddddddddddddddddddddddddddddd
ddddddddddddddddddddddddddddddddddddd
dd CPU dddddddddddddddddddddddddddddddd
dddddddddddddddddddd bkill ddd
7.4
dd d dd d dd d dd bresume
dd bresume ddddddddddddddddddd
bresume 79727
ddddddddddddddddd
Job <79727> is being resumed.
7.5
dd d dd d dd d btop
dd btop ddddddddddddddddddd
btop 79727
ddddddddddddddddd
Job <79727> has been moved to position 1 from top.
7.6
dd d dd d dd d bbot
dd bbot ddddddddddddddddddddd
bbot 79727
ddddddddddddddddd
Job <79727> has been moved to position 1 from bottom.
7 dddddd
7.7
46
dd d dd d dd d dd bmod
dd bmod dddddddddddddddddddddddddddddd
d 79727 ddddddddddd executable2 dddd fat dddddd
bmod -Z executable2 -q fat 79727
Parameters of job <79727> are being changed.
7.8
dd d dd d dd d dd d dbjobs
dd bjobs dddddddddddddddddddddddddddddd
dddddddddddddddddddddddddd
bjobs
JOBID USER STAT QUEUE FROM HOST EXEC HOST JOB NAME SUBMIT TIME
79726 hmli RUN normal user
2∗node31 ∗executab1 Mar 12 19:20
1∗node18
1∗node4
79727 hmli PEND long
user
∗executab2 Mar 12 19:20
dddddd 79726 ddddddd node31dnode18 d node4 ddd 2d1d1 d
dddddd 79727 ddddddddddddddddddddddd
bjobs -l 79727
Job Id <79727>, User <hmli>, Project <default>, Status <PEND>,
Queue <long> , Command <executab2>
Sun Mar 12 14:15:07: Submitted from host <user.qibebt.ac.cn>,
CWD <$HOME>, Requested Resources <type==any && swp>35>;
PENDING REASONS:
SCHEDULING PARAMETERS:
r15s r1m r15m ut pg io ls
it tmp swp mem
loadSched −
0.7 1.0 − 4.0 − − − −
−
−
loadStop
−
1.5 2.5 − 8.0 − − − −
−
−
dddddddddddd
• -u usernameddddddddddd username d alldddddddddddd
• -q queuenameddddddddddd
• -m hostnameddddddddddd
7 dddddd
47
dd d dd d dd d dd d dd d bpeek
7.9
dd bpeek ddddddddddddddddddddd
bpeek 79727
<< output from stdout >>
Radius(nm): 300.000
ddddddd -o d -e dddddddddddddddddddddddd
dddddddddddddddd
dddddddddddddddddd -f ddd
7.10
dd d dd ddd d dd lsload
dd lsload ddddddddddddddddddd
lsload
HOST NAME status r15s r1m r15m ut pg ls
it tmp swp mem
node10
ok
0.0 0.0 0.0 0% 3.5 0 2050 9032M 4000M 16G
node11
locku 0.0 0.0 0.0 0% 3.5 0 2050 9032M 4000M 16G
ut dddddddstatus ddd locku ddddddddddd
7.11
dd d dd ddd d dd bhosts
dd bhosts ddddddddddddddddddd
bhosts
HOST NAME STATUS JL/U MAX NJOBS RUN SSUSP USUSP RSV
node12
closed
− 4
2
2
0
0
0
node10
ok
− 2
2
1
0
0
0
STATUS ddd ok ddddddddddclosed dddddddd
7.12
dd d dd d dbqueues
dd bqueues dddddddddddddd
bqueues
QUEUE NAME PRIO STATUS MAX JL/U JL/P JL/H NJOBS PEND RUN SUSP
normal
30 Open:Active − 8
− − 22
2 20
0
7 dddddd
long
fat
30 Open:Active
30 Open:Active
− 304
− 32
−
−
−
−
52
3
48
12 40
0 3
0
0
ddddddddddd
• QUEUE NAMEdddd
• PRIOdddddddddddddd
• STATUSddddOpen:Active ddddddddddClosed:Active dddd
dddddd
• MAXdddddddd CPU ddd- ddddddddd
• JL/Udddddddddd CPU dd
• NJOBSdddddddddddddddd CPU dd
• PENDddddddddd CPU dd
• RUNddddddddd CPU dd
• SUSPddddddddd CPU dd
7.13
dd d dd d dbuser
dd buser dddddddddddd
busers hmli
USER/GROUP JL/P MAX NJOBS PEND RUN SSUSP USUSP RSV
hmli
− 22
40 32 8
0
0 0
8 dddd
8
49
dddd
ddddddddddddddddddddddhttp://scc.qibebt.cas.
cndddddddddddddddddddddddddddddddddddd
ddddddddddddddddddddddd
• ddd0532-80662795
• ddd
– [email protected][email protected]@ustc.edu.cn
ddddddddddddddddddddddddddddddddddd
dddddddddd

Documents pareils