https://www.sharcnet.ca/help/api.php?action=feedcontributions&user=Isaac&feedformat=atomDocumentation - User contributions [en]2024-03-19T13:56:22ZUser contributionsMediaWiki 1.25.2https://www.sharcnet.ca/help/index.php?title=File:Filesystemgraham.png&diff=16056File:Filesystemgraham.png2017-11-17T17:53:18Z<p>Isaac: </p>
<hr />
<div></div>Isaachttps://www.sharcnet.ca/help/index.php?title=MPFUN90&diff=15701MPFUN902017-09-27T03:02:23Z<p>Isaac: </p>
<hr />
<div>{{Template:LegacyPage}}<br />
{{Software<br />
|package_name=MPFUN90<br />
|package_description=A Fortran-90 arbitrary precision package<br />
|package_idnumber=16<br />
}}<br />
<br />
=Introduction=<br />
<br />
MPFUN90 is a Fortran-90 arbitrary precision package (i.e. user specifies the desired precision)written by David H. Bailey et. al from the Lawrence Berkeley National Laboratory. If 64 digits of precision are sufficient for an application then users should use QD instead of MPFUN which would run much faster.<br />
<br />
=Versions=<br />
<br />
==20060123==<br />
<br />
<pre><br />
module load intel/12.1.3<br />
module load mpfun90/20060123 <br />
</pre><br />
<br />
==20100825==<br />
<br />
<pre><br />
module load intel/15.0.3<br />
module load mpfun90/intel1503/20100825<br />
</pre><br />
<br />
=Usage=<br />
<br />
==Cluster==<br />
To submit a job to the serial queue use:<br />
<br />
sqsub -r 10m --mpp=2G -o ofile.%J ./a.out<br />
<br />
==Interactive==<br />
<br />
===testmp90===<br />
<br />
This example shows how to compile and run <i>testmp90.f90</i> and <i>testmp90.f</i> using the 2006 and 2010 sharcnet mpfun90 modules:<br />
<br />
====20060123====<br />
<br />
[roberpj@orc-login2:~] module load intel/12.1.3; module load mpfun90/20060123<br />
[roberpj@orc-login2:~/samples/mpfun90/20060123] cp /opt/sharcnet/mpfun90/20060123/f90/src/testmp90.f90 .<br />
[roberpj@orc-login2:~/samples/mpfun90/20060123] ifort testmp90.f90 $CPPFLAGS $LDFLAGS -lmp<br />
[roberpj@orc-login2:~/samples/mpfun90/20060123] ./a.out<br />
Completed Test 1<br />
Completed Test 2<br />
Completed Test 3<br />
.................<br />
Completed Test 62<br />
<br />
====20100825====<br />
<br />
[roberpj@orc-login2:~] module unload intel mkl mpfun90<br />
[roberpj@orc-login2:~] module load intel/15.0.3; module load mpfun90/intel1503/20100825<br />
[roberpj@orc-login2:~/samples/mpfun90/20100825] cp $MPFUN90_ROOT/f90/testmp90.f .<br />
[roberpj@orc-login2:~/samples/mpfun90/20100825] ifort -free testmp90.f $MPFUN90_ROOT/toolkit/mpfun90.o -I$MPFUN90_ROOT/toolkit<br />
[roberpj@orc-login2:~/samples/mpfun90/20100825] ./a.out<br />
Completed Test 1<br />
Completed Test 2<br />
Completed Test 3<br />
.................<br />
Completed Test 62<br />
<br />
o Note that when using the mpfun90/20100825 (or newer sharcnet modules) when the main program contains "use mpmodule" its necessary to include "$MPFUN90_ROOT/toolkit/mpmod90.o" when compiling otherwise error messages such as <i>"undefined reference to mpdefmod_mp_mpinit_"</i> will occur. Also note this is not required with the legacy mpfun90/20060123 module since the custom built static mp library (which is no longer being provided by sharcnet) contains all mpfun objects.<br />
<br />
===factorial_100.f90===<br />
<br />
This example shows how to compile and run the program <i>factorial_100.f90</i> using the 2010 sharcnet mpfun90 module only:<br />
<br />
program factorial_100_pgm<br />
use mpmodule<br />
implicit none<br />
integer, parameter :: Nmx = 100<br />
integer :: AllocateStatus<br />
integer :: J<br />
type(mp_real) zero, one<br />
type(mp_real), dimension (:), allocatable :: fac<br />
call mpinit(800)<br />
call mpsetprec(800)<br />
call mpsetoutputprec(700)<br />
zero='0.'<br />
one ='1.'<br />
allocate(fac(0:Nmx),STAT=AllocateStatus)<br />
IF (AllocateStatus /= 0) STOP "Not enough memory for fac "<br />
fac(0)=one<br />
do J=1,Nmx<br />
fac(J)=fac(J-1)*J<br />
end do<br />
J=4<br />
write(6,1001) J<br />
1001 format(/"fac(",i3.3,") =",$)<br />
call mpwrite(6,fac(J))<br />
J=100<br />
write(6,1001) J<br />
call mpwrite(6,fac(J))<br />
write(6,1005)<br />
1005 format(/"DONE"//)<br />
end<br />
<br />
====Compile====<br />
<br />
[roberpj@orc-login2:~/samples/mpfun90/factorial_100_pgm] ifort factorial_100.f90 \<br />
$MPFUN90_ROOT/toolkit/mpmod90.o $MPFUN90_ROOT/toolkit/mpfun90.o -I$MPFUN90_ROOT/toolkit<br />
<br />
====Execute====<br />
<br />
[roberpj@orc-login2:~/samples/mpfun90/factorial_100_pgm] ./a.out<br />
fac(004) =10 ^ 1 x 2.4,<br />
fac(100) =10 ^ 157 x 9.3326215443944152681699238856266700490715968264381621468592<br />
963895217599993229915608941463976156518286253697920827223758251185210916864,<br />
DONE<br />
<br />
==Graphical==<br />
<br />
There is no graphical usage component for this software package.<br />
<br />
=Notes=<br />
<br />
==OpenMP==<br />
<br />
The Multi Precision packages MPFUN90 (and QD) use "user defined data type" for their variables.<br />
Since the OpenMP reduction clause cannot be used for "user defined data types" to run MPFUN90 or QD<br />
with OpenMP the reduction must be done manually in a PARALLEL OpenMP region.<br />
<br />
Detailed documentation on how to use OpenMP with MPFUN90 and QD are presented in the following<br />
document:<br />
<br />
https://www.sharcnet.ca/help/index.php/OpenMP_Reduction_for_User_Defined_Data_Types<br />
<br />
==Large Arrays==<br />
<br />
Declaring large arrays in an MPFUN program often leads to compile<br />
errors like:<br />
<br />
"relocation truncated to fit r_x86_64_pc32 against .bss"<br />
<br />
Even with the flag '-mcmodel large' in the compile command the error<br />
will persist, because there is a limit to the amount of data you can<br />
have allocated in static arrays for x86_64 architecture. This data<br />
segment is limited to 2GB. The data in COMMON plus any other<br />
statically declared arrays PLUS your code must fit in 2GB.<br />
<br />
In order to overcome this problem use allocatable arrays declared in<br />
a module together with a short subroutine which allocates the arrays.<br />
<br />
We illustrate these concepts by starting with a program 'betax.f90'<br />
which work fine for values of parameter 'Nsz' less than 37. Thus, if<br />
you compile it with<br />
<br />
integer, parameter :: Nsz=36<br />
<br />
it works, but for any higher values it fails with error message:<br />
<br />
"relocation truncated to fit: R_X86_64_PC32 against symbol '...'"<br />
<br />
To overcome this problem, we first copy program betax.f90 into a new file,<br />
say, betay.f90, and write a module called 'mp_data' and a subroutine called<br />
'allocate_arrays' at the top of the new file. We move all the declarations<br />
of large arrays into the module, and declare them as 'allocatable'.<br />
<br />
In the subroutine 'allocate_arrays' we do the allocations and in the main<br />
program we add the statements:<br />
<br />
USE mp_data<br />
...<br />
call allocate_arrays<br />
...<br />
<br />
Below you will find the listings for the files 'betax.f90', 'betay.f90' and<br />
the 'HIST' file containing the commands to compile these files and submit<br />
jobs:<br />
<br />
===betax.f90===<br />
<br />
<pre><br />
program BETAX<br />
use mpmodule<br />
implicit none<br />
! integer, parameter :: Nsz=12 ! compilation fails for 37<br />
integer, parameter :: Nsz=37<br />
INTEGER :: I,J,K,L<br />
type(mp_real) zero, one<br />
type(mp_real) fac(0:Nsz),fci(0:Nsz)<br />
type(mp_real) BETA2(Nsz,Nsz)<br />
type(mp_real) BETA3(Nsz,Nsz,Nsz)<br />
type(mp_real) BETA4(Nsz,Nsz,Nsz,Nsz)<br />
call mpinit(800)<br />
call mpsetprec(800)<br />
call mpsetoutputprec(700)<br />
zero='0.'<br />
one ='1.'<br />
fac(0)=one<br />
fci(0)=one<br />
do j=1,Nsz<br />
fac(j)=fac(j-1)*j<br />
fci(j)=one/fac(j)<br />
end do<br />
I=Nsz/2<br />
J=I-1<br />
K=J-1<br />
L=K-1<br />
write(6,1000) I,J,K,L<br />
1000 format(/"I,J,K,L = ",4i3)<br />
write(6,1001) I<br />
1001 format(/"fac(",i3.3,") =",$)<br />
call mpwrite(6,fac(I))<br />
BETA2(I,J) =fac(I)*fac(J)*fci(I+J)<br />
BETA3(I,J,K) =fac(I)*fac(J)*fac(K)*fci(I+J)*fci(J+K)<br />
BETA4(I,J,K,L) =fac(I)*fac(J)*fac(K)*fac(L)* &<br />
& fci(I+J)*fci(J+K)*fci(K+L)<br />
write(6,1002) I,J<br />
1002 format(/"BETA2(",i3.3,",",i3.3,") =")<br />
call mpwrite(6,BETA2(I,J))<br />
write(6,1003) I,J,K<br />
1003 format(/"BETA3(",i3.3,",",i3.3,",",i3.3,") =")<br />
call mpwrite(6,BETA3(I,J,K))<br />
write(6,1004) I,J,K,L<br />
1004 format(/"BETA4(",i3.3,",",i3.3,",",i3.3,",",i3.3,") =")<br />
call mpwrite(6,BETA4(I,J,K,L))<br />
write(6,1005)<br />
1005 format(/"DONE"//)<br />
stop<br />
end<br />
</pre><br />
<br />
====Nsz=12 (works)====<br />
<br />
<pre><br />
[roberpj@orc-login2:~] ssh orc-dev1<br />
[roberpj@orc129:~] module purge; module load ldwrapper; module load intel/15.0.3; module load mpfun90/intel1503/20100825<br />
[roberpj@orc129:~] cd ~/samples/mpfun90/betax<br />
[roberpj@orc129:~/samples/mpfun90/betax] ifort betax.f90 $MPFUN90_ROOT/toolkit/mpmod90.o $MPFUN90_ROOT/toolkit/mpfun90.o -I$MPFUN90_ROOT/toolkit<br />
[roberpj@orc129:~/samples/mpfun90/betax] ./a.out<br />
<br />
I,J,K,L = 6 5 4 3<br />
<br />
fac(006) =10 ^ 2 x 7.2,<br />
<br />
BETA2(006,005) =<br />
10 ^ -3 x 2.1645021645021645021645021645021645021645021645021645021645<br />
021645021645021645021645021645021645021645021645021645021645021645021645021645<br />
021645021645021645021645021645021645021645021645021645021645021645021645021645<br />
021645021645021645021645021645021645021645021645021645021645021645021645021645<br />
021645021645021645021645021645021645021645021645021645021645021645021645021645<br />
021645021645021645021645021645021645021645021645021645021645021645021645021645<br />
021645021645021645021645021645021645021645021645021645021645021645021645021645<br />
021645021645021645021645021645021645021645021645021645021645021645021645021645<br />
021645021645021645021645021645021645021645021645021645021645021645021645021645<br />
021645021645021645,<br />
<br />
BETA3(006,005,004) =<br />
10 ^ -7 x 1.4315490505966696442886919077395267871458347648823839300029<br />
776220252410728601204791680982157172633363109553585744061934538125014315490505<br />
966696442886919077395267871458347648823839300029776220252410728601204791680982<br />
157172633363109553585744061934538125014315490505966696442886919077395267871458<br />
347648823839300029776220252410728601204791680982157172633363109553585744061934<br />
538125014315490505966696442886919077395267871458347648823839300029776220252410<br />
728601204791680982157172633363109553585744061934538125014315490505966696442886<br />
919077395267871458347648823839300029776220252410728601204791680982157172633363<br />
109553585744061934538125014315490505966696442886919077395267871458347648823839<br />
300029776220252410,<br />
<br />
BETA4(006,005,004,003) =<br />
10 ^ -10 x 1.7042250602341305289151094139756271275545651962885522976225<br />
924071729060391191910466286883520443611146558992363981026112545386921804155364<br />
246067193912998901661033180307556724790284880987828833633822295953815228191645<br />
425205515908463754268742930874450148826566060126150829098674903663565795085069<br />
461486695046785749733595538584200715719990096407329967420670368516173504835636<br />
354910731327964888055591003436808425470556989831366248599808690511638357443346<br />
105477624752001169234729325432273278078266740398259672636089869649960352908198<br />
713187375318894593271010504570595273543119348108010239529513905931139491230194<br />
178039983028645160164434540851774411865114812960617949280080799355175772409332<br />
500035447881252869,<br />
<br />
DONE<br />
</pre><br />
<br />
====Nsz=37 (fails)====<br />
<br />
<pre><br />
[roberpj@orc-login2:~/samples/mpfun90/betax] ssh orc-dev1<br />
[roberpj@orc129:~] module purge; module load ldwrapper; module load intel/15.0.3; module load mpfun90/intel1503/20100825<br />
[roberpj@orc129:~] cd ~/samples/mpfun90/betax<br />
[roberpj@orc129:~/samples/mpfun90/betax] ifort betax.f90 $MPFUN90_ROOT/toolkit/mpmod90.o $MPFUN90_ROOT/toolkit/mpfun90.o -I$MPFUN90_ROOT/toolkit<br />
/opt/sharcnet/mpfun90/20100825/intel1503/toolkit/mpmod90.o: In function `mpdefmod_mp_mpsetprec_':<br />
mpmod90.f:(.text+0x1b): relocation truncated to fit: R_X86_64_PC32 against symbol `mpdefmod_mp_new_mpipl_' defined in COMMON section in /opt/sharcnet/mpfun90/20100825/intel1503/toolkit/mpmod90.o<br />
mpmod90.f:(.text+0xa0): relocation truncated to fit: R_X86_64_PC32 against symbol `mpdefmod_mp_new_mpwds_' defined in COMMON section in /opt/sharcnet/mpfun90/20100825/intel1503/toolkit/mpmod90.o<br />
mpmod90.f:(.text+0xa6): relocation truncated to fit: R_X86_64_PC32 against symbol `mpdefmod_mp_mpnwx_' defined in COMMON section in /opt/sharcnet/mpfun90/20100825/intel1503/toolkit/mpmod90.o<br />
mpmod90.f:(.text+0xcf): relocation truncated to fit: R_X86_64_PC32 against symbol `mpdefmod_mp_mpnwx_' defined in COMMON section in /opt/sharcnet/mpfun90/20100825/intel1503/toolkit/mpmod90.o<br />
/opt/sharcnet/mpfun90/20100825/intel1503/toolkit/mpmod90.o: In function `mpdefmod_mp_mpgetprec_':<br />
mpmod90.f:(.text+0xe6): relocation truncated to fit: R_X86_64_PC32 against symbol `mpdefmod_mp_mpnwx_' defined in COMMON section in /opt/sharcnet/mpfun90/20100825/intel1503/toolkit/mpmod90.o<br />
/opt/sharcnet/mpfun90/20100825/intel1503/toolkit/mpmod90.o: In function `mpdefmod_mp_mpsetprecwords_':<br />
mpmod90.f:(.text+0x109): relocation truncated to fit: R_X86_64_PC32 against symbol `mpdefmod_mp_new_mpwds_' defined in COMMON section in /opt/sharcnet/mpfun90/20100825/intel1503/toolkit/mpmod90.o<br />
mpmod90.f:(.text+0x18c): relocation truncated to fit: R_X86_64_PC32 against symbol `mpdefmod_mp_mpnwx_' defined in COMMON section in /opt/sharcnet/mpfun90/20100825/intel1503/toolkit/mpmod90.o<br />
mpmod90.f:(.text+0x198): relocation truncated to fit: R_X86_64_PC32 against symbol `mpdefmod_mp_mpnwx_' defined in COMMON section in /opt/sharcnet/mpfun90/20100825/intel1503/toolkit/mpmod90.o<br />
/opt/sharcnet/mpfun90/20100825/intel1503/toolkit/mpmod90.o: In function `mpdefmod_mp_mpgetprecwords_':<br />
mpmod90.f:(.text+0x1b2): relocation truncated to fit: R_X86_64_PC32 against symbol `mpdefmod_mp_mpnwx_' defined in COMMON section in /opt/sharcnet/mpfun90/20100825/intel1503/toolkit/mpmod90.o<br />
/opt/sharcnet/mpfun90/20100825/intel1503/toolkit/mpmod90.o: In function `mpdefmod_mp_mpsetoutputprec_':<br />
mpmod90.f:(.text+0x1c9): relocation truncated to fit: R_X86_64_PC32 against symbol `mpdefmod_mp_new_mpipl_' defined in COMMON section in /opt/sharcnet/mpfun90/20100825/intel1503/toolkit/mpmod90.o<br />
mpmod90.f:(.text+0x24c): additional relocation overflows omitted from the output<br />
</pre><br />
<br />
===betay.f90===<br />
<br />
Copy betay.f90 from betax.f90 and modify as follows:<br />
<br />
<pre><br />
module mp_data<br />
use mpmodule<br />
use mpfunmod<br />
implicit none<br />
integer, parameter :: Nsz =48<br />
integer :: AllocateStatus<br />
! type(mp_real) zero, one<br />
!<br />
! type(mp_real) fac(0:Nsz),fci(0:Nsz)<br />
! type(mp_real) BETA2(Nsz,Nsz)<br />
! type(mp_real) BETA3(Nsz,Nsz,Nsz)<br />
! type(mp_real) BETA4(Nsz,Nsz,Nsz,Nsz)<br />
type(mp_real) zero, one<br />
type(mp_real), dimension (:), allocatable :: fac,fci<br />
type(mp_real), dimension (:,:), allocatable :: BETA2<br />
type(mp_real), dimension (:,:,:), allocatable :: BETA3<br />
type(mp_real), dimension (:,:,:,:), allocatable :: BETA4<br />
end module mp_data<br />
subroutine allocate_arrays<br />
USE mp_data<br />
implicit none<br />
allocate(fac(0:Nsz),STAT=AllocateStatus)<br />
IF (AllocateStatus /= 0) STOP "Not enough memory for fac "<br />
allocate(fci(0:Nsz),STAT=AllocateStatus)<br />
IF (AllocateStatus /= 0) STOP "Not enough memory for fci "<br />
allocate(BETA2(Nsz,Nsz),STAT=AllocateStatus)<br />
IF (AllocateStatus /= 0) STOP "Not enough memory for BETA2"<br />
allocate(BETA3(Nsz,Nsz,Nsz),STAT=AllocateStatus)<br />
IF (AllocateStatus /= 0) STOP "Not enough memory for BETA3"<br />
allocate(BETA4(Nsz,Nsz,Nsz,Nsz),STAT=AllocateStatus)<br />
IF (AllocateStatus /= 0) STOP "Not enough memory for BETA4"<br />
print *,"Done with allocations"<br />
return<br />
END<br />
<br />
program BETAY<br />
USE mp_data<br />
implicit none<br />
INTEGER :: I,J,K,L<br />
call mpinit(800)<br />
call mpsetprec(800)<br />
call mpsetoutputprec(700)<br />
zero='0.'<br />
one ='1.'<br />
call allocate_arrays<br />
fac(0)=one<br />
fci(0)=one<br />
do j=1,Nsz<br />
fac(j)=fac(j-1)*j<br />
fci(j)=one/fac(j)<br />
end do<br />
I=Nsz/2<br />
J=I-1<br />
K=J-1<br />
L=K-1<br />
write(6,1000) I,J,K,L<br />
1000 format(/"I,J,K,L = ",4i3)<br />
write(6,1001) I<br />
1001 format(/"fac(",i3.3,") =",$)<br />
call mpwrite(6,fac(I))<br />
BETA2(I,J) =fac(I)*fac(J)*fci(I+J)<br />
BETA3(I,J,K) =fac(I)*fac(J)*fac(K)*fci(I+J)*fci(J+K)<br />
BETA4(I,J,K,L) =fac(I)*fac(J)*fac(K)*fac(L)* &<br />
& fci(I+J)*fci(J+K)*fci(K+L)<br />
write(6,1002) I,J<br />
1002 format(/"BETA2(",i3.3,",",i3.3,") =")<br />
call mpwrite(6,BETA2(I,J))<br />
write(6,1003) I,J,K<br />
1003 format(/"BETA3(",i3.3,",",i3.3,",",i3.3,") =")<br />
call mpwrite(6,BETA3(I,J,K))<br />
write(6,1004) I,J,K,L<br />
1004 format(/"BETA4(",i3.3,",",i3.3,",",i3.3,",",i3.3,") =")<br />
call mpwrite(6,BETA4(I,J,K,L))<br />
write(6,1005)<br />
1005 format(/"DONE"//)<br />
stop<br />
end<br />
</pre><br />
<br />
====Run Interactive====<br />
<br />
<pre><br />
[roberpj@orc-login2:~/samples/mpfun90/betax] ssh orc-dev1<br />
[roberpj@orc129:~] module purge; module load ldwrapper; module load intel/15.0.3; module load mpfun90/intel1503/20100825<br />
[roberpj@orc129:~] cd ~/samples/mpfun90/betax<br />
[roberpj@orc129:~/samples/mpfun90/betay] ifort betay.f90 -mcmodel medium -shared-intel $MPFUN90_ROOT/toolkit/mpmod90.o $MPFUN90_ROOT/toolkit/mpfun90.o -I$MPFUN90_ROOT/toolkit<br />
[roberpj@orc129:~/samples/mpfun90/betay] ./a.out<br />
Done with allocations<br />
<br />
I,J,K,L = 24 23 22 21<br />
<br />
fac(024) =10 ^ 23 x 6.2044840173323943936,<br />
<br />
BETA2(024,023) =<br />
10 ^ -14 x 6.2020112243197155666795543346647015590753323586760996092750<br />
322219057797634187521971369584938063040803657153278083912027225083805532623694<br />
253019502124309149392729129350380917947755526197968886374824625487894350759012<br />
041810328483619840297565282378760232413828873982152911730876431238573292437598<br />
662321548481235961397432074855738879756265023434311148398287293760405994587153<br />
193913843867324131168164219803469468792765957446870530750541069496092327458240<br />
264036867349068267612059922537556261610989123549224099029159406148147186635876<br />
682339231176161254018298581141061530140422181489818261044243997939224351270878<br />
819950204611859530447542248373743937988058087925403948261102164487732977810152<br />
365677688323239749,<br />
<br />
BETA3(024,023,022) =<br />
10 ^ -49 x 5.8275670518268372535457693390802431850085211093628371195552<br />
665374004872800254829089878748169551314149473682136937787061527746060528126189<br />
766201816798822863047397630953393452298952922317427385387709426414471466082503<br />
710520168054747139227447182197529542668023453841447481072362595230792080104688<br />
990118018686670752770192225324208683555045454680275731685429800649187636704457<br />
682218863512356150460390146982645823361128943131689947031597399022247950302452<br />
330798644776819869632357497968409458052013048605853804143958746701285425073948<br />
635138571530969417104049554300550153503104110125327389142504664160736472211972<br />
376564769573352356164657421339817982321431569247028739128974299782191260982443<br />
302487480103263037,<br />
<br />
BETA4(024,023,022,021) =<br />
10 ^ -82 x 4.9281568290835382164029311372592682488032902612395816340121<br />
089418282192742634150386978468714226783345875673304699950206823277002261928996<br />
900244023525594363488176338336719985617691508208486288075631383295355204178844<br />
640181812076780791059441681639997667611161419120033906970044689546074997396047<br />
324233844363558571961437990937177293607133483649131082039969185440365241880338<br />
469876039008981574675398716901015661349359043742699044662693828465598208328182<br />
649393881845546476915223922569122221086448855100004979240419350679011848465439<br />
752707160104858505636971713317247147406784939008134376861978582533070195429961<br />
381129842064351212761591279694768634684602143478580742025860111467351736320562<br />
750016997598905712,<br />
<br />
DONE<br />
</pre><br />
<br />
====Run In Queue====<br />
<br />
The executable requires 4G or more. Setting mpp=8G should work (logout then in again to reset to default environment): <br />
<br />
<pre><br />
sqsub -r 5m --mpp=8.0G -o ofile.%J ./a.out<br />
</pre><br />
<br />
==Math Toolkit==<br />
<br />
===Running Mathinit===<br />
This toolkit provides and extensive example of how the mpfun package can be used. Read the header of files <br />
mathinit.f90 <br />
and <br />
mathtool.f90 <br />
found under <br />
/opt/sharcnet/mpfun90/version/[flavor]/toolkit <br />
for an explanation what the package does. The Makefile in this directory shows how the mpfun libraries were linked to compile this sample program pair. The following steps shows the first initialization step followed by actually running the mathtool program to perform some examples such as performing an integration and displaying the value of pie. Note that the displayed zero cputimes are due to a bug in the mpfun current build which will be fixed in future updates on the clusters.<br />
<br />
To run Mathtool you must first generate following two input files <br />
const.dat <br />
and <br />
quadts.dat <br />
<br />
which can be accomplished by running following command:<br />
<br />
<pre><br />
[roberpj@orc-login1:~/samples/mpfun90/math] cp /opt/sharcnet/mpfun90/20100825/intel1503/toolkit/mathinit .<br />
[roberpj@orc-login1:~/samples/mpfun90/math] chmod 700 mathinit <br />
[roberpj@orc-login1:~/samples/mpfun90/math] ./mathinit<br />
mathinit: start<br />
const complete<br />
file const.dat written<br />
cpu time = 2.57360911369324 <br />
initqts: Tanh-sinh quadrature initialization<br />
0 18632<br />
1000 18632<br />
2000 18632<br />
3000 18632<br />
4000 18632<br />
5000 18632<br />
6000 18632<br />
7000 18632<br />
8000 18632<br />
initqts: Table spaced used = 8177<br />
initqts complete<br />
file quadts.dat written<br />
cpu time = 90.4362528324127 <br />
total cpu time = 93.0098619461060<br />
[roberpj@orc-login1:~/samples/mpfun90/mathinit] ls<br />
const.dat mathinit quadts.dat<br />
</pre><br />
<br />
===Running Mathtool===<br />
Use the files created in the previous section to run mathtool as follows:<br />
<br />
<pre><br />
[roberpj@orc-login1:~/samples/mpfun90/math] cp /opt/sharcnet/mpfun90/20100825/intel1503/toolkit/mathtool .<br />
[roberpj@orc-login1:~/samples/mpfun90/math] chmod 700 mathtool <br />
[roberpj@orc-login1:~/samples/mpfun90/math] ./mathtool <br />
Welcome to the Experimental Mathematician's Toolkit<br />
Initializing...<br />
<br />
Current settings:<br />
Debug level = 2<br />
Primary precision level = 100 digits<br />
Secondary precision level = 200 digits<br />
Primary epsilon = 10^ -100<br />
Secondary epsilon = 10^ -200<br />
PSLQ bound = 100<br />
PSLQ level = 1<br />
Quadrature level = 6<br />
Quadrature type = 3 (Tanh-Sinh)<br />
<br />
Sample expressions (case insensitive):<br />
e + pi + log2 + log10 + catalan Adds these pre-defined constants.<br />
result[1] + result[2] Adds result #1 to result #2.<br />
alpha = arctan[3] - 3*log[2] Defines or sets user variable alpha.<br />
fun1[x,y] = 2*sqrt[x]*erf[y] Defines user function fun1.<br />
clear[nam1] Clears definition of variable or function.<br />
integrate[1/(1+x^2), {x, 0, 1}] Integrates 1/(1+x^2) from x=0 to 1.<br />
sum[1/2^k, {k, 0, infinity}] Sums 1/2^k from k=0 to infinity.<br />
binomial[20,10]*factorial[10] Evaluates binomial coeff and factorial.<br />
zeta[3] + zetaz[1,1,2] Evaluates zeta and multi-zeta functions.<br />
table[x^k, {k, 1, 4}] Forms the list [x^1, x^2, x^3, x^4].<br />
pslq[table[x^k, {k, 0, n}]] Finds coeffs of degree-n poly for x.<br />
polyroot[1,-1,-1,{0.618}] Finds real root of 1-x-x^2=0 near 0.618.<br />
polyroot[1,2,3,{-0.33, 0.47}] Complex root of 1+2x+3x^2 near -0.33+0.47i.<br />
digits = 200 Sets working precision to 200 digits.<br />
epsilon = -190 Sets epsilon level to 10^(-190).<br />
eformat[190,180] Display using E format with 180 digits.<br />
fformat[60,50] Display using F format with 50 digits.<br />
input file.dat Inputs commands from file file.dat.<br />
output file.dat Outputs user vars and funs to file.dat.<br />
help polyroot Displays a brief explanation of polyroot.<br />
functions Displays a list of all defined functions.<br />
variables Displays a list of all defined variables.<br />
prompt Displays this message.<br />
exit Exits this program.<br />
Expressions may be continued on next line by typing \ at end of line.<br />
<br />
integrate[1/(1+x^2), {x, 0, 1}] (hit enter)<br />
quadts: Iteration 1 of 6; est error = 10^ 0; approx value =<br />
7.853157298876894309110693190063938396203990510665917998384243e-1<br />
quadts: Iteration 2 of 6; est error = 10^ 0; approx value =<br />
7.853981605125528448099840689980111720633592558858121242731082e-1<br />
quadts: Iteration 3 of 6; est error = 10^ -17; approx value =<br />
7.853981633974483082028533923930157568609007576776270726821597e-1<br />
quadts: Iteration 4 of 6; est error = 10^ -36; approx value =<br />
7.853981633974483096156608458198757190586422063114153956005278e-1<br />
quadts: Iteration 5 of 6; est error = 10^ -71; approx value =<br />
7.853981633974483096156608458198757210492923498437764552437361e-1<br />
quadts: Iteration 6 of 6; est error = 10^ -101; approx value =<br />
7.853981633974483096156608458198757210492923498437764552437361e-1<br />
Result[ 1] =<br />
7.85398163397448309615660845819875721049292349843776455243736148076954e-1<br />
CPU time = 0.1730<br />
<br />
functions (hit enter)<br />
Abs Arccos Arcsin Arctan <br />
Arctan2 Bessel Besselexp Binomial <br />
Cos Erf Exp Factorial <br />
Gamma Integrate Log Max <br />
Min Polyroot Pslq Result <br />
Sin Sqrt Sum Table <br />
Tan Zeta Zetap Zetaz <br />
<br />
variables (hit enter)<br />
E Log2 Log10 Pi <br />
Catalan Eulergamma Infinity Arg1 <br />
Arg2 Arg3 Arg4 Arg5 <br />
Arg6 Arg7 Arg8 Arg9 <br />
Debug Digits Digits2 Epsilon <br />
Epsilon2 Pslqbound Pslqlevel Quadlevel <br />
Quadtype x <br />
<br />
Pi (hit enter) <br />
Result[ 2] =<br />
3.14159265358979323846264338327950288419716939937510582097494459230781e0<br />
CPU time = 0.0000<br />
<br />
sqrt[1600] (hit enter) <br />
Result[ 1] =<br />
4.00000000000000000000000000000000000000000000000000000000000000000000e1<br />
CPU time = 0.0000<br />
<br />
help Binomial (hit enter) <br />
Binomial[m,n] computes the binomial coefficient of integers (m,n). <br />
<br />
Binomial[3,2] (hit enter) <br />
Result[ 2] =<br />
3.00000000000000000000000000000000000000000000000000000000000000000000e0<br />
CPU time = 0.0000<br />
<br />
hypo[x,y] = sqrt[x^2+y^2] (hit enter) <br />
parse: new function name = hypo <br />
CPU time = 0.0000<br />
<br />
z=hypo[3,4] (hit enter) <br />
parse: new variable name = z <br />
CPU time = 0.0000<br />
<br />
z (hit enter) <br />
Result[ 3] =<br />
5.00000000000000000000000000000000000000000000000000000000000000000000e0<br />
CPU time = 0.0000<br />
</pre><br />
<br />
=References=<br />
<br />
o High-Precision Software Directory<br><br />
http://crd.lbl.gov/~dhbailey/mpdist/index.html</div>Isaachttps://www.sharcnet.ca/help/index.php?title=File:Largememory2.png&diff=14495File:Largememory2.png2016-11-14T16:21:47Z<p>Isaac: </p>
<hr />
<div></div>Isaachttps://www.sharcnet.ca/help/index.php?title=File:Whichsystem2.png&diff=14494File:Whichsystem2.png2016-11-14T16:19:03Z<p>Isaac: </p>
<hr />
<div></div>Isaachttps://www.sharcnet.ca/help/index.php?title=File:Highnetwork2.png&diff=14493File:Highnetwork2.png2016-11-14T16:18:28Z<p>Isaac: </p>
<hr />
<div></div>Isaachttps://www.sharcnet.ca/help/index.php?title=Category:Computational_Fluid_Dynamics&diff=12043Category:Computational Fluid Dynamics2015-10-08T14:18:00Z<p>Isaac: Created page with "Pages related to Computational Fluid Dynamics."</p>
<hr />
<div>Pages related to Computational Fluid Dynamics.</div>Isaachttps://www.sharcnet.ca/help/index.php?title=File:Contiguous.png&diff=12010File:Contiguous.png2015-10-01T05:41:43Z<p>Isaac: </p>
<hr />
<div></div>Isaachttps://www.sharcnet.ca/help/index.php?title=File:Parallel_coll.png&diff=12007File:Parallel coll.png2015-10-01T05:23:46Z<p>Isaac: </p>
<hr />
<div></div>Isaachttps://www.sharcnet.ca/help/index.php?title=File:Parallel_IO.png&diff=12006File:Parallel IO.png2015-10-01T05:21:18Z<p>Isaac: </p>
<hr />
<div></div>Isaachttps://www.sharcnet.ca/help/index.php?title=File:Serial_IO2.png&diff=12004File:Serial IO2.png2015-10-01T05:15:37Z<p>Isaac: </p>
<hr />
<div></div>Isaachttps://www.sharcnet.ca/help/index.php?title=File:Serial_IO.png&diff=12003File:Serial IO.png2015-10-01T05:12:26Z<p>Isaac: </p>
<hr />
<div></div>Isaachttps://www.sharcnet.ca/help/index.php?title=File:Locks.png&diff=12002File:Locks.png2015-10-01T04:51:57Z<p>Isaac: </p>
<hr />
<div></div>Isaachttps://www.sharcnet.ca/help/index.php?title=File:Memory.png&diff=12000File:Memory.png2015-10-01T04:22:22Z<p>Isaac: </p>
<hr />
<div></div>Isaachttps://www.sharcnet.ca/help/index.php?title=File:Diskaccess.png&diff=11998File:Diskaccess.png2015-10-01T04:17:28Z<p>Isaac: </p>
<hr />
<div></div>Isaachttps://www.sharcnet.ca/help/index.php?title=File:Hpc_IO.png&diff=11997File:Hpc IO.png2015-10-01T03:23:45Z<p>Isaac: </p>
<hr />
<div></div>Isaachttps://www.sharcnet.ca/help/index.php?title=File:Whichsystem.png&diff=9373File:Whichsystem.png2014-09-04T04:37:36Z<p>Isaac: </p>
<hr />
<div></div>Isaachttps://www.sharcnet.ca/help/index.php?title=File:Highdiskio.png&diff=9372File:Highdiskio.png2014-09-04T04:37:23Z<p>Isaac: </p>
<hr />
<div></div>Isaachttps://www.sharcnet.ca/help/index.php?title=File:Highnetwork.png&diff=9371File:Highnetwork.png2014-09-04T04:37:11Z<p>Isaac: </p>
<hr />
<div></div>Isaachttps://www.sharcnet.ca/help/index.php?title=File:Largememory.png&diff=9370File:Largememory.png2014-09-04T04:36:57Z<p>Isaac: </p>
<hr />
<div></div>Isaachttps://www.sharcnet.ca/help/index.php?title=File:Parallel.png&diff=9017File:Parallel.png2014-08-13T18:02:05Z<p>Isaac: Isaac uploaded a new version of &quot;File:Parallel.png&quot;</p>
<hr />
<div></div>Isaachttps://www.sharcnet.ca/help/index.php?title=File:Parallel.png&diff=9015File:Parallel.png2014-08-13T17:58:42Z<p>Isaac: </p>
<hr />
<div></div>Isaachttps://www.sharcnet.ca/help/index.php?title=File:Serialfarm.png&diff=9014File:Serialfarm.png2014-08-13T17:58:30Z<p>Isaac: </p>
<hr />
<div></div>Isaachttps://www.sharcnet.ca/help/index.php?title=File:SN_helppage.jpg&diff=8041File:SN helppage.jpg2014-02-20T15:00:08Z<p>Isaac: </p>
<hr />
<div></div>Isaachttps://www.sharcnet.ca/help/index.php?title=File:SN_webfront.jpg&diff=8026File:SN webfront.jpg2014-02-20T14:31:55Z<p>Isaac: </p>
<hr />
<div></div>Isaachttps://www.sharcnet.ca/help/index.php?title=File:SN_mapN.jpg&diff=8014File:SN mapN.jpg2014-02-19T19:17:21Z<p>Isaac: </p>
<hr />
<div></div>Isaachttps://www.sharcnet.ca/help/index.php?title=BOOST&diff=4270BOOST2012-10-04T05:32:09Z<p>Isaac: Created page with "{{Software |package_name=BOOST |package_description=free peer-reviewed portable C++ source libraries |package_idnumber=137 }} The version of boost and boost-devel packages instal..."</p>
<hr />
<div>{{Software<br />
|package_name=BOOST<br />
|package_description=free peer-reviewed portable C++ source libraries<br />
|package_idnumber=137<br />
}}<br />
The version of boost and boost-devel packages installed are provided with the native operating system and not provided by a sharcnet module hence they are available by default.<br />
<br />
To get the latest version information about the packages do:<br />
<br />
<pre><br />
rpm -qi boost<br />
rpm -qi boost-devel<br />
</pre><br />
<br />
To get a listing of files for each package do:<br />
<br />
<pre><br />
rpm -ql boost<br />
rpm -ql boost-devel<br />
</pre></div>Isaachttps://www.sharcnet.ca/help/index.php?title=MKL&diff=3950MKL2012-04-05T04:28:55Z<p>Isaac: Created page with "{{Software |package_name=MKL |package_description=Intel Math Kernel Library |package_idnumber=89 }} <U>COMPILING WITH MKL</U> 1) The compile script can be used for codes that si..."</p>
<hr />
<div>{{Software<br />
|package_name=MKL<br />
|package_description=Intel Math Kernel Library<br />
|package_idnumber=89<br />
}}<br />
<U>COMPILING WITH MKL</U><br />
<br />
1) The compile script can be used for codes that simply need to link with the MKL blas and lapack libraries (where the program extension <b>xyz</b> can be any of c/cc, cxx/CC/c++ or f77/f90/f95) as follows:<br />
<br />
<pre>compile program.xyz -llapack</pre><br />
<br />
To demonstrate this approach, consider the following example where the result from a.out can be compared with the expect vendor provided solution:<br />
<br />
<pre><br />
[hnd50:~] ln -s /opt/sharcnet/acml/4.3.0/ifort-64bit/ifort64/examples/dgetrf_example.f<br />
<br />
[hnd50:~] compile -v dgetrf_example.f -llapack<br />
<br />
[hnd50:~] ./a.out<br />
<br />
[hnd50:~] cat /opt/sharcnet/acml/4.3.0/ifort-64bit/ifort64/examples/dgetrf_example.expected <br />
</pre><br />
<br />
2) More generally the Intel® Math Kernel Library Link Line Advisor[http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/] can be used to generate linker options for more complex linking situations with MKL than the compile script supports. For instance, to determine the link arguments for the Linux Operating System, IA64 Itanium Processor, Intel Compiler, Dynamic Linking, 64 bit Integers, Multi-threaded Version of MKL, Intel OpenMP Library (libiomp5) plus the Scalapack Library, the MKL Link Line Advisor would (at the time of this writing) return the following reccomendation:<br />
<pre><br />
$MKLPATH/libmkl_scalapack_lp64.a $MKLPATH/libmkl_solver_lp64.a -Wl,--start-group $MKLPATH/libmkl_intel_lp64.a $MKLPATH/libmkl_intel_thread.a $MKLPATH/libmkl_core.a $MKLPATH/libmkl_blacs_sgimpt_lp64.a -Wl,--end-group -openmp -lpthread<br />
</pre><br />
<br />
All of the installed MKL libraries can be listed as follows:<br />
<pre><br />
[roberpj@saw377:~] ls /opt/sharcnet/intel/current/ifc/mkl/lib/em64t<br />
libmkl_blacs_ilp64.a libmkl_gf_lp64.a libmkl_scalapack_ilp64.a<br />
libmkl_blacs_intelmpi20_ilp64.a libmkl_gf_lp64.so libmkl_scalapack_ilp64.so<br />
libmkl_blacs_intelmpi20_lp64.a libmkl_gnu_thread.a libmkl_scalapack_lp64.a<br />
libmkl_blacs_intelmpi_ilp64.a libmkl_gnu_thread.so libmkl_scalapack_lp64.so<br />
libmkl_blacs_intelmpi_ilp64.so libmkl_intel_ilp64.a libmkl_sequential.a<br />
libmkl_blacs_intelmpi_lp64.a libmkl_intel_ilp64.so libmkl_sequential.so<br />
libmkl_blacs_intelmpi_lp64.so libmkl_intel_lp64.a libmkl.so<br />
libmkl_blacs_lp64.a libmkl_intel_lp64.so libmkl_solver.a<br />
libmkl_blacs_openmpi_ilp64.a libmkl_intel_sp2dp.a libmkl_solver_ilp64.a<br />
libmkl_blacs_openmpi_lp64.a libmkl_intel_sp2dp.so libmkl_solver_ilp64_sequential.a<br />
libmkl_blacs_sgimpt_ilp64.a libmkl_intel_thread.a libmkl_solver_lp64.a<br />
libmkl_blacs_sgimpt_lp64.a libmkl_intel_thread.so libmkl_solver_lp64_sequential.a<br />
libmkl_cdft.a libmkl_lapack.a libmkl_vml_def.so<br />
libmkl_cdft_core.a libmkl_lapack.so libmkl_vml_mc2.so<br />
libmkl_core.a libmkl_mc3.so libmkl_vml_mc3.so<br />
libmkl_core.so libmkl_mc.so libmkl_vml_mc.so<br />
libmkl_def.so libmkl_p4n.so libmkl_vml_p4n.so<br />
libmkl_em64t.a libmkl_pgi_thread.a locale<br />
libmkl_gf_ilp64.a libmkl_pgi_thread.so<br />
libmkl_gf_ilp64.so libmkl_scalapack.a<br />
</pre><br />
<br />
<U>Note About Using The ILP64 Vs LP64 Variants Of MKL</U><br />
<br />
You should use Intel MKL ilp64 in following cases.<br><br />
1. If you are using huge data arrays (indexing exceeds 2^32-1)<br><br />
2. If you enable FORTRAN code with the /4I8 compiler option<br><br />
<br />
The ilp64 version of the MKL libraries defines integers as 64 bit. This implies codes should be compiled with -i8 OR internally be modfied to use the integer*8 type. Otherwise the standard lp64 version of MKL should be used which assumes integers are standard 32 bit.<br />
<br />
<U>Support for Third-Party Interfaces</U><br />
<br />
<b>o GMP Functions</b><br><br />
The Intel MKL implementation of GMP arithmetic functions includes arbitrary precision arithmetic operations on integer numbers. The interfaces of such functions fully match the GNU Multiple Precision (GMP) Arithmetic Library. For specifications of these functions, please see this link[http://www.intel.com/software/products/mkl/docs/gnump/WebHelp/]. If you currently use the GMP library, you need to modify INCLUDE statements in your programs to mkl_gmp.h.<br />
<br />
<b>o FFTW Interface Support</b><br><br />
Intel MKL provides interface wrappers for the 2.x and 3.x FFTW [http://www.fftw.org] superstructure are located in the same directory on all clusters. Using hound and version 11.0.083 of the intel compiler as an example, the wrappers and corresponding fftw wrapper header files are located in the following locations:<br />
<pre><br />
[roberpj@hnd50:/opt/sharcnet/intel/11.0.083/ifc/mkl/interfaces] ls<br />
blas95 fftw2xc fftw2x_cdft fftw2xf fftw3xc fftw3xf lapack95<br />
<br />
[roberpj@hnd50:/opt/sharcnet/intel/11.0.083/ifc/mkl/include/fftw] ls<br />
fftw3.f fftw_f77.i fftw_mpi.h rfftw.h rfftw_threads.h<br />
fftw3.h fftw.h fftw_threads.h rfftw_mpi.h<br />
</pre><br />
<br />
The wrappers can be used for calling the Intel ~<i>equivilent</i>~ MKL Fourier transform functions instead of FFTW for programs that currently use FFTW without changing the program source code. Referring to the online document FFTW to Intel® Math Kernel Library Wrappers Technical User Notes[http://www.intel.com/software/products/mkl/docs/fftw_mkl_user_notes_2.htm] its mentions that "FFTW2MKL wrappers are delivered as the source code that must be compiled by the user to build the wrapper library." By popular demand these wrapper have been precompiled for immediate use and located in two directories for each intel module (at present 11.0.083 and 11.1.069) as follows:<br />
<br />
<pre><br />
[roberpj@hnd50:/opt/sharcnet/intel/11.0.083/mkl/lib/em64t/interfaces] tree<br />
.<br />
|-- ilp64<br />
| |-- libfftw2xc_intel.a<br />
| |-- libfftw2xf_intel.a<br />
| |-- libfftw3xc_intel.a<br />
| |-- libfftw3xf_intel.a<br />
| |-- libmkl_blas95.a<br />
| |-- libmkl_lapack95.a<br />
| |-- mkl77_lapack.mod<br />
| |-- mkl77_lapack1.mod<br />
| |-- mkl95_blas.mod<br />
| |-- mkl95_lapack.mod<br />
| `-- mkl95_precision.mod<br />
`-- lp64<br />
|-- libfftw2xc_intel.a<br />
|-- libfftw2xf_intel.a<br />
|-- libfftw3xc_intel.a<br />
|-- libfftw3xf_intel.a<br />
|-- libmkl_blas95.a<br />
|-- libmkl_lapack95.a<br />
|-- mkl77_lapack.mod<br />
|-- mkl77_lapack1.mod<br />
|-- mkl95_blas.mod<br />
|-- mkl95_lapack.mod<br />
`-- mkl95_precision.mod<br />
</pre><br />
<br />
<U>Introduction to Using the MKL FFT</U><br />
<br />
Intel markets two implementations of the FFT. The first being from MKL[http://software.intel.com/en-us/intel-mkl/] and the other from IPP[http://software.intel.com/en-us/intel-ipp/] whose differences are described here[http://software.intel.com/en-us/articles/mkl-ipp-choosing-an-fft/>]. Only the MKL version is installed on SHARCNET.<br />
<br />
The main FFT Computation Functions provided with MKL are DftiComputeForward and DftiComputeForward which compute the forward and backward FFT respectively. These functions along with Descriptor Manipulation Functions, Descriptor Configuration Functions and Status Checking Functions are provided in the Table “FFT Functions in Intel MKL”[http://www.intel.com/software/products/mkl/docs/webhelp/fft/fft_DFTF.html]. Intel describes howto use these functions in their Fourier Transform Functions Code Examples[http://www.intel.com/software/products/mkl/docs/webhelp/appendices/mkl_appC_FFT.html] document which also covers multi-threading aspects.<br />
<br />
The simplest way to explain howto MKL FFT is by compiling and running a example problem of which there are several located under <i>/opt/sharcnet/intel/11.0.083/ifc/mkl/examples</i> where the fortran samples are contained in the <i>dftf</i> sub-directory while the c program samples are contained in the <i>dftc</i> sub-directory. The problem demonstrated here is from the source <i>complex_2d_double_ex1.f90</i> which provides a MKL DFTI interface example program (Fortran-interface) to demonstrate Forward-Backward 2D complex transform for double precision data inplace. Steps to run this program are as follows:<br />
<br />
1) Copy the example directory to a test directory in your account with:<br><br />
<pre><br />
cp -r /opt/sharcnet/intel/11.0.083/ifc/mkl/examples/dftf /scratch/myusername/dftfdemo<br />
cd /scratch/myusername/dftfdemo<br />
</pre><br />
<br />
2) Next compile the example program. In this case the machine used is Silky ie) ia64 based.<br />
<pre><br />
make lib64 function=complex_2d_double_ex1 compiler=intel interface=ia64 [threading=parallel 2>&1 | tee myMake.out<br />
</pre><br />
<br />
3) The built output appears as follows, where you will note the first step is to compile <b>mkl_dfti.f90</b> into a module which is then used in the program on line 42 where the statement <i>Use MKL_DFTI</i> can be seen vizzz:<br />
<br />
<pre><br />
make lib64 function=complex_2d_double_ex1 compiler=intel interface=ia64 [threading=parallel 2>&1 | tee myMake.out<br />
rm -fr *.o *.mod<br />
make mkl_dfti.o dfti_example_support.o dfti_example_status_print.o complex_2d_double_ex1.res _IA=64 EXT=a RES_EXT=lib<br />
make[1]: Entering directory `/home/roberpj/samples/fft-intel/fft/dftf'<br />
mkdir -p ./_results/intel_ia64_parallel_64_lib<br />
ifort -w -c /opt/sharcnet/intel/11.0.083/ifc/mkl/include/mkl_dfti.f90 -o mkl_dfti.o<br />
mkdir -p ./_results/intel_ia64_parallel_64_lib<br />
ifort -w -c source/dfti_example_support.f90 -o dfti_example_support.o<br />
mkdir -p ./_results/intel_ia64_parallel_64_lib<br />
ifort -w -c source/dfti_example_status_print.f90 -o dfti_example_status_print.o<br />
mkdir -p ./_results/intel_ia64_parallel_64_lib<br />
ifort -w mkl_dfti.o dfti_example_support.o dfti_example_status_print.o source/complex_2d_double_ex1.f90 -L"/opt/sharcnet/intel/11.0.083/ifc/mkl/lib/64"<br />
"/opt/sharcnet/intel/11.0.083/ifc/mkl/lib/64"/libmkl_intel_lp64.a -Wl,--start-group "/opt/sharcnet/intel/11.0.083/ifc/mkl/lib/64"/libmkl_intel_thread.a<br />
"/opt/sharcnet/intel/11.0.083/ifc/mkl/lib/64"/libmkl_core.a -Wl,--end-group -L"/opt/sharcnet/intel/11.0.083/ifc/mkl/lib/64" -liomp5 -lpthread -o<br />
_results/intel_ia64_parallel_64_lib/complex_2d_double_ex1.out<br />
export<br />
LD_LIBRARY_PATH="/opt/sharcnet/intel/11.0.083/ifc/mkl/lib/64":/opt/sharcnet/lsf/6.2/linux2.6-glibc2.4-ia64/lib:/opt/sharcnet/lsf/6.2/linux2.6-glibc2.4-ia64/lib:/opt/sharcnet/intel/11$<br />
_results/intel_ia64_parallel_64_lib/complex_2d_double_ex1.out <data/complex_2d_double_ex1.d >_results/intel_ia64_parallel_64_lib/complex_2d_double_ex1.res<br />
make[1]: Leaving directory `/home/roberpj/samples/fft-intel/fft/dftf'<br />
</pre><br />
<br />
4) Since the program gets run automatically by the makefile, the output data can be examined by running more (or less) on the results file called <i>complex_2d_double_ex1.res</i> which gets created.<br />
<br />
<pre><br />
cat _results/intel_ia64_parallel_64_lib/complex_2d_double_ex1.res<br />
COMPLEX_2D_DOUBLE_EX1<br />
Forward-Backward 2D complex transform for double precision data<br />
<br />
Configuration parameters:<br />
<br />
DFTI_FORWARD_DOMAIN = DFTI_COMPLEX<br />
DFTI_PRECISION = DFTI_DOUBLE <br />
DFTI_DIMENSION = 2<br />
DFTI_LENGTHS = { 5, 3}<br />
DFTI_PLACEMENT = DFTI_INPLACE<br />
DFTI_INPUT_STRIDES = { 0, 1, 15}<br />
DFTI_FORWARD_SCALE = 1.0 <br />
DFTI_BACKWARD_SCALE = 1.0/real(m*n)<br />
<br />
<br />
INPUT vector X (2D columns)<br />
( 0.729, 0.486) ( -0.865, -0.577) ( -0.278, -0.186)<br />
( 0.787, 0.525) ( 0.839, 0.559) ( -0.586, -0.391)<br />
( 0.122, 0.081) ( -0.741, -0.494) ( -0.794, -0.529)<br />
( -0.655, -0.437) ( 0.580, 0.387) ( -0.866, -0.577)<br />
( -0.830, -0.554) ( -0.371, -0.247) ( -0.791, -0.527)<br />
<br />
Compute DftiComputeForward<br />
<br />
Forward OUTPUT vector X (2D columns)<br />
( -3.720, -2.480) ( 3.681, -0.995) ( 0.497, 3.780)<br />
( 2.932, -1.810) ( 1.422, 0.044) ( 3.078, -1.928)<br />
( 1.115, -2.479) ( -2.040, 1.814) ( 3.144, 1.228)<br />
( -1.859, 1.982) ( 2.343, 2.430) ( 0.890, -2.581)<br />
( -0.543, 3.403) ( -0.596, 3.583) ( 0.588, 1.295)<br />
<br />
Compute DftiComputeBackward<br />
<br />
Backward OUTPUT vector X (2D columns)<br />
( 0.729, 0.486) ( -0.865, -0.577) ( -0.278, -0.186)<br />
( 0.787, 0.525) ( 0.839, 0.559) ( -0.586, -0.391)<br />
( 0.122, 0.081) ( -0.741, -0.494) ( -0.794, -0.529)<br />
( -0.655, -0.437) ( 0.580, 0.387) ( -0.866, -0.577)<br />
( -0.830, -0.554) ( -0.371, -0.247) ( -0.791, -0.527)<br />
<br />
ACCURACY = 0.248253E-15<br />
TEST PASSED<br />
</pre><br />
<br />
<br />
<br />
<U>SUMMARY EXAMPLE PROGRAMS</U><br />
<br />
The Intel compiler came with many mkl examples which can be copied to your work directory to experiment with by doing the following:<br />
<br />
<pre>cp -r /opt/sharcnet/intel/current/ifc/mkl/examples /work/$USER</pre><br />
<br />
Then each example can be compiled by going into any example directory and executing:<br />
<br />
<pre>make soem64t</pre></div>Isaachttps://www.sharcnet.ca/help/index.php?title=VALGRIND&diff=3946VALGRIND2012-04-05T04:17:53Z<p>Isaac: Created page with "{{Software |package_name=VALGRIND |package_description=Memory debugging |package_idnumber=132 }} Please see the page on our Help Wiki for documentation on how to use the Valgrin..."</p>
<hr />
<div>{{Software<br />
|package_name=VALGRIND<br />
|package_description=Memory debugging<br />
|package_idnumber=132<br />
}}<br />
<br />
Please see the page on our Help Wiki for documentation on how to use the Valgrind package on SHARCNET: Here [https://www.sharcnet.ca/help/index.php/Valgrind]</div>Isaachttps://www.sharcnet.ca/help/index.php?title=OCTAVE&diff=3924OCTAVE2012-04-04T18:31:31Z<p>Isaac: Created page with "{{Software |package_name=OCTAVE |package_description=Mostly compatible language with Matlab primarily intended for numerical computations |package_idnumber=28 }} <font color=red..."</p>
<hr />
<div>{{Software<br />
|package_name=OCTAVE<br />
|package_description=Mostly compatible language with Matlab primarily intended for numerical computations<br />
|package_idnumber=28<br />
}}<br />
<br />
<font color=red>NOTICE :</font> On December 1st 2011 octave/3.4.0 will be <b>removed</b> from all sharcnet clusters since version octave/3.4.3 is now installed and contains significant performance enhancements. Also on Dec 1 the octave/3.2.4 module will no longer load by default on goblin and hound clusters.<br />
<br />
For best performance load the latest version of octave by doing:<br />
<br />
<pre><br />
module unload octave<br />
module load octave<br />
</pre><br />
<br />
On SHARCNET clusters Octave should only be run via the queuing system. Octave serial jobs bas best submitted to the serial queue on kraken assuming they use less than 1gb by doing:<br />
<br />
<pre><br />
sqsub -t -r 60m -f wha -o ofile.%J octave mycode.m<br />
</pre><br />
<br />
As of version 3.4.3 the sharcnet octave installation supports multithreading which based on initial testing can result in an order of magnitude speedup for octave codes that are specifically lapack and blas intensive (compared to simply using a single core in the serial queue) without making any changes to your code. Once the optimal number of processors is determined by scaling tests submit the job to the threaded queue for example:<br />
<br />
<pre><br />
sqsub -t -r 60m -n 16 -q threaded --mpp=1G -o ofile.%J time octave mycode.m<br />
</pre><br />
<br />
<u>WORKING WITH ADDITIONAL PACKAGES</u><br />
<br />
The "Octave Forge"[http://octave.sourceforge.net/] project provides extra packages for use with octave that can be downloaded and manually installed into your own sharcnet account. A list of packages which can be downloaded can be found "here"[http://octave.sourceforge.net/]. Consider setting up a directory called <i>my_octave_sources</i> in your sharcnet home account for all your downloaded packages as is assumed in the following example:<br />
<br />
<pre><br />
[jole@bul125:~] octave<br />
<br />
octave:1> help pkg<br />
</pre><br />
<br />
To install a package such as linear-algebra do<br />
<br />
<pre><br />
octave:2> cd ~/my_octave_sources<br />
<br />
octave:3> pkg install linear-algebra-2.1.0.tar.gz</pre><br />
<br />
To then remove the linear-algebra do<br />
<br />
octave:4> pkg uninstall linear-algebra<br />
<br />
To list all installed packages do<br />
<br />
octave:5> pkg list<br />
<br />
To add a named packages to your path do<br />
<br />
octave:6> pkg load name<br />
<br />
To remove a named package from your path do<br />
<br />
octave:8> pkg unload<br />
<br />
To list all functions provided by a package do<br />
<br />
octave:9> pkg describe -verbose all<br />
<br />
To list functions provide by extra odepkg package do<br />
<br />
octave:10> pkg describe odepkg<br />
<br />
To list functions details for extra financial package<br />
<br />
octave:11> pkg describe financial -verbose<br />
<br />
To get documentation for a topic such as sin do<br />
<br />
octave:12> doc sin<br />
<br />
To get help using the doc command do<br />
<br />
octave:13> help doc<br />
<br />
To get documentation for a topic such as matrix do<br />
<br />
octave:14> doc matrix<br />
<br />
To get documentation for any topic run the doc command alone<br />
<br />
octave:15> doc<br />
<br />
<u>READING OR WRITING FILES</u><br />
<br />
There are two strategies for handling file "input and output"[http://www.gnu.org/software/octave/doc/interpreter/Input-and-Output.html#Input-and-Output] described in the "Octave manual"[http://www.gnu.org/software/octave/docs.html]. The following are some demonstrating the "simple file I/O"[http://www.gnu.org/software/octave/doc/interpreter/Simple-File-I_002fO.html#Simple-File-I_002fO] approach<br />
<br />
<pre> <br />
save myiofile.dat A B C<br />
save ("-text", "myiofile.dat", "A", "B", "C")<br />
save ("-binary", "myiofile.dat", "A", "B", "C")<br />
load myiofile.dat<br />
load ("-text", "myiofile.dat", "A", "B", "C")<br />
load ("-binary", "myiofile.dat", "A", "B", "C")<br />
</pre><br />
where A, B and C are a potential mix of entities such as scalars, vectors or matrices. Note that for large files the binary format is strongly recommended to both minimize disk space and file read/write wallclock times.<br />
<br />
<U>A COMPLETE PACKAGE EXAMPLE</U><br />
<br />
This example assumes you first create two directories in your home account one being named <i>~/my_octave_packages</i> and the other <i>~/my_octave_sources</i> then download the required three tar.gz files into the latter from here [http://octave.sourceforge.net/packages.php]<br />
<br />
<PRE><br />
[roberpj@orc-login1:~] module unload octave<br />
[roberpj@orc-login1:~] module load octave<br />
[roberpj@orc-login1:~] octave<br />
GNU Octave, version 3.4.3<br />
octave:1> pkg prefix ~/my_octave_packages<br />
ans = /home/roberpj/my_octave_packages<br />
octave:2> cd my_octave_sources<br />
octave:3> ls<br />
miscellaneous-1.0.11.tar.gz optim-1.0.17.tar.gz struct-1.0.9.tar.gz<br />
octave:4> pkg install miscellaneous-1.0.11.tar.gz optim-1.0.17.tar.gz struct-1.0.9.tar.gz<br />
octave:5> pkg list<br />
Package Name | Version | Installation directory<br />
---------------|---------|-----------------------<br />
miscellaneous *| 1.0.11 | /home/roberpj/my_octave_packages/miscellaneous-1.0.11<br />
optim *| 1.0.17 | /home/roberpj/my_octave_packages/optim-1.0.17<br />
struct *| 1.0.9 | /home/roberpj/my_octave_packages/struct-1.0.9</PRE><br />
<br />
<br />
<U>MATLAB COMPATIBILITY</U><br />
<br />
The online wiki resources "Octave Wiki"[http://wiki.octave.org/wiki.pl?MatlabOctaveCompatibility] or "Wikibook"[http://en.wikibooks.org/wiki/MATLAB_Programming/Differences_between_Octave_and_MATLAB] provide good introductory explanations of code compatibility between Octave and Matlab.<br />
<br />
<u>LARGE MEMORY ARRAY ALLOCATION TESTING</u><br />
<br />
The following command sequence should successfully run on hound or tope. Since tope is recommended for interactive use and has 32gb of memory the test will be demonstrated there:<br />
<br />
<pre><br />
[mypc ~] ssh tope.sharcnet.ca<br />
<br />
[tope ~] module load octave/3.4.0<br />
<br />
[tope ~] octave<br />
GNU Octave, version 3.4.0<br />
octave:3> N=4e8; A=[1:N]; B=[2*(1:N)]; C=A+B; C(1); C(N); 3*N <br />
ans = 1.2000e+09<br />
<br />
[tope ~] top<br />
24985 roberpj 24 0 9406m 9.0g 12m S 0.0 32.6 0:34.34 octave<br />
</pre></div>Isaachttps://www.sharcnet.ca/help/index.php?title=MPIBLAST&diff=3920MPIBLAST2012-04-04T18:19:09Z<p>Isaac: Created page with "{{Software |package_name=MPIBLAST |package_description=Parallel implementation of NCBI BLAST |package_idnumber=55 }} h1. Example 1 - DROSOPH Copy sample problem files into a dir..."</p>
<hr />
<div>{{Software<br />
|package_name=MPIBLAST<br />
|package_description=Parallel implementation of NCBI BLAST<br />
|package_idnumber=55<br />
}}<br />
h1. Example 1 - DROSOPH<br />
<br />
Copy sample problem files into a directory under work. Use 1.5.0 or 1.6.0 depending on which cluster you are on:<br />
<br />
mkdir /work/$USER/testmpiblast1; cd /work/$USER/testmpiblast1<br />
cp /opt/sharcnet/mpiblast/1.6.0/examples/drosoph.in drosoph.in<br />
gunzip -c /opt/sharcnet/mpiblast/1.6.0/examples/drosoph.aa.gz > drosoph.aa<br />
gunzip -c /opt/sharcnet/mpiblast/1.6.0/examples/drosoph.nt.gz > drosoph.nt<br />
<br />
Create hidden configuration file which defines shared storage location between nodes and a local storage directory on each compute node as follows<br />
<br />
cd /work/$USER/testmpiblast1<br />
echo "[mpiBLAST]" > .ncbirc<br />
echo "Shared=/scratch/$USER/testmpiblast1" >> .ncbirc<br />
echo "Local=/tmp" >> .ncbirc<br />
<br />
Create the shared directory under scratch where the partitioned database will be stored. Note that files under scratch will eventually expire and be deleted automatically by the system.<br />
<br />
mkdir /scratch/$USER/testmpiblast1<br />
<br />
From _/work/$USER/testmpiblast1_ execute the following command to partition the database. After it completes verify the partition files were created in the shared scratch directory. For this example choosing N=32 doubles the execution time compared to N=16. The choice of N should be therefore carefully chosen based on scaling tests.<br />
<br />
Version 1.5.0 clusters run: mpiformatdb.sh "-N 16 -i drosoph.nt -o T -p F"<br />
Version 1.6.0 clusters run: mpiformatdb -N 16 -i drosoph.nt -o T -p F<br />
<br />
Submit a short test job to the queue with a 15m time limit. If all goes well output results will be written to _drosoph.out_ and the total execution wall time will be approximately 3 seconds. <br />
<br />
sqsub -t -r 15m -n 16 -q mpi -o ofile%J mpiblast -d drosoph.nt -i drosoph.in -p blastn -o drosoph.out --removedb<br />
<br />
Sample output is included in _/opt/sharcnet/mpiblast/current/examples/ROSOPH.out_ to compare your _drosoph.out_ output file with it.<br />
<br />
h1. Example 2 - BIOBREW<br />
<br />
Copy sample problem files into a directory under work.<br />
<br />
mkdir /work/$USER/testmpiblast2; cd /work/$USER/testmpiblast2<br />
cp /opt/sharcnet/mpiblast/1.6.0/examples/il2ra.in il2ra.in<br />
gunzip -c /opt/sharcnet/mpiblast/1.6.0/examples/Hs.seq.uniq.gz > Hs.seq.uniq<br />
<br />
Create hidden configuration file which defines shared storage location between nodes and a local storage directory on each compute node as follows:<br />
<br />
cd /work/$USER/testmpiblast2<br />
echo "[mpiBLAST]" > .ncbirc<br />
echo "Shared=/work/$USER/mpiformatdbs/testmpiblast2" >> .ncbirc<br />
echo "Local=/tmp" >> .ncbirc<br />
<br />
Create the shared directory under work where formated databases will be stored. In this example the database is saved under work for long term retention and sharing.<br />
<br />
mkdir /work/$USER/mpiformatdbs; mkdir /work/$USER/mpiformatdbs/testmpiblast2<br />
<br />
From _/work/$USER/testmpiblast2_ execute the following command to partition the database. After it completes verify the database files were created in the shared work directory. Note that doubling N to 32 in this examples improves the performance by only 10% and therefore is not practical.<br />
<br />
Version 1.5.0 clusters run: mpiformatdb.sh "-N 16 -i Hs.seq.uniq -o T -p F" <br />
Version 1.6.0 clusters run: mpiformatdb -N 16 -i Hs.seq.uniq -o T -p F<br />
<br />
Submit a short test job to the queue with a 15m time limit. If all goes well output results will be written to <i>biobrew.out</i> and the total execution wall time will be approximately 30 seconds. <br />
<br />
sqsub -t -r 55m -n 16 -q mpi -o ofile%J mpiblast -p blastn -d Hs.seq.uniq -i il2ra.in -o biobrew.out<br />
<br />
Sample output is included in _/opt/sharcnet/mpiblast/1.6.0/examples/BIOBREW.out_ to compare your _biobrew.out_ output file with.<br />
<br />
h1. MPIBLAST Command Line Arguments<br />
<br />
<br />
mpiblast.sh --help<br />
<br />
-p [blast program name]<br />
-d [database]<br />
-i [query file]<br />
<br />
mpiformatdb.sh --help<br />
formatdb 2.2.15 arguments:<br />
-t Title for database file [String] Optional<br />
-i Input file(s) for formatting [File In] Optional<br />
-l Logfile name: [File Out] Optional<br />
default = formatdb.log<br />
-p Type of file<br />
T - protein <br />
F - nucleotide [T/F] Optional<br />
default = T<br />
-o Parse options<br />
T - True: Parse SeqId and create indexes.<br />
F - False: Do not parse SeqId. Do not create indexes.<br />
[T/F] Optional<br />
default = F<br />
-a Input file is database in ASN.1 format (otherwise FASTA is expected)<br />
T - True, <br />
F - False.<br />
[T/F] Optional<br />
default = F<br />
-b ASN.1 database in binary mode<br />
T - binary, <br />
F - text mode.<br />
[T/F] Optional<br />
default = F<br />
-e Input is a Seq-entry [T/F] Optional<br />
default = F<br />
-n Base name for BLAST files [String] Optional<br />
-v Database volume size in millions of letters [Integer] Optional<br />
default = 0<br />
range from 0 to <NULL><br />
-s Create indexes limited only to accessions - sparse [T/F] Optional<br />
default = F<br />
-V Verbose: check for non-unique string ids in the database [T/F] Optional<br />
default = F<br />
-L Create an alias file with this name<br />
use the gifile arg (below) if set to calculate db size<br />
use the BLAST db specified with -i (above) [File Out] Optional<br />
-F Gifile (file containing list of gi's) [File In] Optional<br />
-B Binary Gifile produced from the Gifile specified above [File Out] Optional<br />
-N Number of database volumes [Integer] Optional<br />
default = 0<br />
range from 1 to 250</div>Isaachttps://www.sharcnet.ca/help/index.php?title=LSDYNA&diff=3883LSDYNA2012-03-26T15:49:33Z<p>Isaac: Created page with "{{Software |package_name=LS-DYNA |package_description=Suite of programs for transient dynamic finite element program |package_idnumber=104 }} <b><u>USAGE INSTRUCTIONS</u> (sharc..."</p>
<hr />
<div>{{Software<br />
|package_name=LS-DYNA<br />
|package_description=Suite of programs for transient dynamic finite element program<br />
|package_idnumber=104<br />
}}<br />
<br />
<b><u>USAGE INSTRUCTIONS</u> (sharcnet installation)</b><br><br />
<br />
These usage instructions apply to the module based installation of lsdyna found under directory <i>/opt/sharcnet/lsdyna</i> on licensed clusters shown in the above Availability Table. To access and use this software you must be a member of the <b><i>lsdyna</i></b> group. <br><br />
<br />
Users who belong to a licensed department will be given a 5 digit port number. Insert the value into the appropriate departmental export statement shown below (before loading the module file) as shown in the following two steps:<br />
<br />
<b>Step1 - SPECIFY SHARCNET SERVER</b><br />
<br />
o Demo License All Users (Jan20 to Feb20)<br />
export LSTC_LICENSE_SERVER=31052@license1.uwo.sharcnet<br />
<br />
o UW Mechanical and Mechatronics Engineering Dept (UW Sharcnet Systems)<br />
export LSTC_LICENSE_SERVER=<font color=blue>UW_Port_Number</font>@db.uwo.sharcnet<br />
<br />
o UWO Civil and Environmental Engineering Dept (UWO Sharcnet Systems)<br />
export LSTC_LICENSE_SERVER=<font color=blue>UWO_Port_Number</font>@license1.uwo.sharcnet<br />
<br />
<b> Step2 - LOAD LSDYNA MODULE</b><br />
<br />
module load lsdyna<br />
<br />
<b><u>RUNNING A TEST EXAMPLE</u></b><br />
<br />
cp -a /opt/sharcnet/lsdyna/ls971dR5.0/examples /scratch/$USER/examples-lsdyna<br />
cd /scratch/$USER/examples-lsdyna/load/generalized<br />
gunzip load_body.shell.k.gz<br />
<br />
<br />
o SUBMIT 1CPU SERIAL JOB (double precision)<br />
<br />
sqsub -t -q serial -r 10m -o ofile1cpu.%J lsdyna_d ncpu=1 i=load_body.shell.k<br />
<br />
<br />
o SUBMIT 4CPU THREADED TEST JOB (single precision)<br />
<br />
sqsub -t -q threaded -n 4 -r 5m -o ofile4cpu.%J lsdyna_s ncpu=4 para=2 i=load_body.shell.k<br />
<br />
<br />
o SUBMIT 4CPU PARALLEL (MPP) TEST JOB<br />
<br />
Support for mpi (MPP) based lsdyna jobs is presently under construction. Once its ready a sample <i>sqsub</i> command line will be posted here - expected by Feb 10 2012.<br />
<br />
<U><b>CHECKING JOB STATUS</b></U><br />
<br />
To check the status of your job in the queue use the sqjobs command. On x86_64 systems you can check whether any of your jobs are queued on the license server use <i>lstc_qrun</i>. Its possible that sqsub will start your job but it will sit idle until enough license are available on the license server and the lstc_qrun command will reveal this:<br />
<br />
[jole@saw:~] lstc_qrun<br />
Defaulting to server 1 specified by LSTC_LICENSE_SERVER variable<br />
Running Programs<br />
User Host Program Started # procs<br />
-----------------------------------------------------------------------------<br />
roberpj 9383@silky.sharcnet.c LS-DYNA_971 Mon Aug 23 18:31 4<br />
No programs queued<br />
<br />
<br />
<U><b>CHECKING LICENSE DETAILS</b></U><br />
<br />
At the time of this writing UWO is running on a 4cpu demo license as follows:<br />
<br />
[roberpj@hnd19:~] lstc_qrun -R<br />
Defaulting to server 1 specified by LSTC_LICENSE_SERVER variable<br />
<br />
LICENSE INFORMATION<br />
<br />
PROGRAM EXPIRATION CPUS USED FREE MAX | QUEUE<br />
---------------- ---------- ----- ------ ------ | -----<br />
LS-DYNA_971 02/15/2012 0 128 128 | 0 <br />
MPPDYNA_971 02/15/2012 0 128 128 | 0<br />
LICENSE GROUP 0 128 128 | 0 <br />
<br />
PROGRAM EXPIRATION CPUS USED FREE MAX | QUEUE<br />
---------------- ---------- ----- ------ ------ | -----<br />
LS-OPT 02/15/2012 0 128 128 | 0<br />
LICENSE GROUP 0 128 128 | 0<br />
<br />
<br />
<U><b>AVAILABLE BINARY VERSIONS</b></U><br />
<br />
In the previous example, the latest lsdyna versions were specifed using simply lsdyna_s for single precision and lsdyna_d for double precision. One can alternatively specify any of the following binary names explicty on x86_64 systems assuming your license allows there use:<br />
<br />
ls971_s_R3_1 <br />
ls971_d_R3_1<br />
ls971_s_R4_2_1<br />
ls971_d_R4_2_1<br />
lsdyna_d = ls971_d_R5_0 --> ls971_d_R5_0_intel64_redhat54<br />
lsdyna_s = ls971_s_R5_0 --> ls971_s_R5_0_intel64_redhat54<br />
<br />
<br />
<U><b>GETTING HELP</b></U><br />
<br />
If you experience problems submitting or running jobs please submit a ticket to the web portal and it will be resolved asap by clicking here [https://www.sharcnet.ca/my/problems/submit]. Specify software as the category and paste any error messages and provide effected job number(s).<br />
<br />
<br><br />
<HR COLOR="blue" SIZE="6" width="50%" NOSHADE><br><br />
<br><br />
<br />
<b><u>USAGE INSTRUCTIONS</u> (uw local installation)</b><br><br />
<br />
These instructions apply to the script driven (non-modularized) site local installation of lsdyna found under /opt/sharcnet/local/lsdyna on orca and saw. To use this software you must be a member of the <b>uw_lsdyna</b> group and follow the below usage instructions. <br><br><br />
<br />
o Set up LS-Dyna environment<br><br />
add the following 4 lines to the end of your .bash_profile file in your /home directory, where the port number 3XXXX should be set to override the 31010 default.<br />
<br />
#Env. for LS-Dyna<br />
export LSTC_LICENSE=network<br />
export LSTC_LICENSE_SERVER="3XXXX@db.uwo.sharcnet"<br />
export PATH=/opt/sharcnet/local/lsdyna:$PATH<br />
<br />
<br />
o RUN 1CPU SERIAL JOB from your file (input file) directory on saw or whale<br />
<br />
sqsub -q serial -r 3.0d -o airbag.out ls971_s_R3_1 i=airbag.deploy.k<br />
<br />
<br />
O RUN 4CPU SMP JOB<br />
<br />
sqsub -q threaded -n 4 -r 3.0d -o -o airbag.out ls971_s_R3_1 ncpu=4 para=2 i=airbag.deploy.k<br />
<br />
<br />
A more detailed info and usage suggestions can be found in a file named 'README_uw_lsdyna' in /home/jemmyhu/tests/test_lsdyna on SHARCNET systems.<br />
<br></div>Isaachttps://www.sharcnet.ca/help/index.php?title=GEANT4&diff=3874GEANT42012-03-26T15:26:53Z<p>Isaac: </p>
<hr />
<div>{{Software<br />
|package_name=GEANT4<br />
|package_description=Suite of programs for the simulation of the passage of particles through matter<br />
|package_idnumber=59<br />
}}<br />
<br />
The latest version of geant4 (9.5) is installed on CentOS clusters (see the table at the top of this page) under _/opt/sharcnet/geant4/9.5/gcc_. We also have the older version 4.9.1 installed on some systems, but it is no longer updated, so for the newest geant4 please log in to the CentOS clusters.<br />
<br />
Geant4 comes with many examples useful for testing purposes. You can start with a simple test. For instance, here are the steps to compile and run an analysis example A01 in ~/testing directory inside your home directory:<br />
<br />
module unload intel/11.0.083<br />
module load gcc/4.5.3 <br />
module load geant4/gcc/9.5<br />
export G4WORKDIR=~/testing<br />
cp -a /opt/sharcnet/geant4/9.5/gcc/examples/extended/analysis/A01 $G4WORKDIR/A01<br />
source /opt/sharcnet/geant4/9.5/gcc/share/Geant4-9.5.0/geant4make/geant4make.sh<br />
export CXX=g++<br />
cd $G4WORKDIR/A01 <br />
make # LD_RUN_PATH is ignored by this makefile, so need to set LD_LIBRARY_PATH<br />
export LD_LIBRARY_PATH=/opt/sharcnet/gcc/4.5.3/lib64:$LD_LIBRARY_PATH<br />
sqsub -q serial -r 5m -o output.log ../bin/Linux-g++/A01app<br />
<br />
<br />
Note that geant4 makefiles will omit the environment variable $LD_RUN_PATH which has a path to gcc libraries, instead encoding only its own path to the application library you are building ($G4WORKDIR/tmp/Linux-g++/A01app in our example), so we need to set LD_LIBRARY_PATH by hand before running geant4 as illustrated by the example above.</div>Isaachttps://www.sharcnet.ca/help/index.php?title=GEANT4&diff=3870GEANT42012-03-26T15:21:24Z<p>Isaac: Created page with "{{Software |package_name=AMBER |package_description=Suite of programs that allow users to carry out molecular dynamics simulations |package_idnumber=57 }} The latest version of ..."</p>
<hr />
<div>{{Software<br />
|package_name=AMBER<br />
|package_description=Suite of programs that allow users to carry out molecular dynamics simulations<br />
|package_idnumber=57<br />
}}<br />
<br />
The latest version of geant4 (9.5) is installed on CentOS clusters (see the table at the top of this page) under _/opt/sharcnet/geant4/9.5/gcc_. We also have the older version 4.9.1 installed on some systems, but it is no longer updated, so for the newest geant4 please log in to the CentOS clusters.<br />
<br />
Geant4 comes with many examples useful for testing purposes. You can start with a simple test. For instance, here are the steps to compile and run an analysis example A01 in ~/testing directory inside your home directory:<br />
<br />
module unload intel/11.0.083<br />
module load gcc/4.5.3 <br />
module load geant4/gcc/9.5<br />
export G4WORKDIR=~/testing<br />
cp -a /opt/sharcnet/geant4/9.5/gcc/examples/extended/analysis/A01 $G4WORKDIR/A01<br />
source /opt/sharcnet/geant4/9.5/gcc/share/Geant4-9.5.0/geant4make/geant4make.sh<br />
export CXX=g++<br />
cd $G4WORKDIR/A01 <br />
make # LD_RUN_PATH is ignored by this makefile, so need to set LD_LIBRARY_PATH<br />
export LD_LIBRARY_PATH=/opt/sharcnet/gcc/4.5.3/lib64:$LD_LIBRARY_PATH<br />
sqsub -q serial -r 5m -o output.log ../bin/Linux-g++/A01app<br />
<br />
<br />
Note that geant4 makefiles will omit the environment variable $LD_RUN_PATH which has a path to gcc libraries, instead encoding only its own path to the application library you are building ($G4WORKDIR/tmp/Linux-g++/A01app in our example), so we need to set LD_LIBRARY_PATH by hand before running geant4 as illustrated by the example above.</div>Isaachttps://www.sharcnet.ca/help/index.php?title=User_talk:Isaac&diff=1060User talk:Isaac2009-12-16T14:23:06Z<p>Isaac: moved User talk:Isaac to Getting Started with SHARCNET (online reference)</p>
<hr />
<div>#REDIRECT [[Getting Started with SHARCNET (online reference)]]</div>Isaachttps://www.sharcnet.ca/help/index.php?title=File:Ticket.jpg&diff=955File:Ticket.jpg2009-11-12T15:29:02Z<p>Isaac: uploaded a new version of "File:Ticket.jpg"</p>
<hr />
<div></div>Isaachttps://www.sharcnet.ca/help/index.php?title=File:Ticket.jpg&diff=954File:Ticket.jpg2009-11-12T15:26:54Z<p>Isaac: </p>
<hr />
<div></div>Isaachttps://www.sharcnet.ca/help/index.php?title=File:Ftp.jpg&diff=948File:Ftp.jpg2009-11-12T14:36:20Z<p>Isaac: </p>
<hr />
<div></div>Isaachttps://www.sharcnet.ca/help/index.php?title=File:Ag.jpg&diff=941File:Ag.jpg2009-11-11T17:21:57Z<p>Isaac: </p>
<hr />
<div></div>Isaachttps://www.sharcnet.ca/help/index.php?title=File:Inter_topo.jpg&diff=926File:Inter topo.jpg2009-11-10T16:46:29Z<p>Isaac: </p>
<hr />
<div></div>Isaachttps://www.sharcnet.ca/help/index.php?title=File:4way.jpg&diff=923File:4way.jpg2009-11-10T16:41:17Z<p>Isaac: </p>
<hr />
<div></div>Isaachttps://www.sharcnet.ca/help/index.php?title=File:Arch.jpg&diff=921File:Arch.jpg2009-11-10T16:39:08Z<p>Isaac: </p>
<hr />
<div></div>Isaachttps://www.sharcnet.ca/help/index.php?title=File:Sn_home.jpg&diff=918File:Sn home.jpg2009-11-10T16:30:15Z<p>Isaac: </p>
<hr />
<div></div>Isaachttps://www.sharcnet.ca/help/index.php?title=File:Resource_at_a_glance.jpg&diff=917File:Resource at a glance.jpg2009-11-10T16:29:32Z<p>Isaac: </p>
<hr />
<div></div>Isaachttps://www.sharcnet.ca/help/index.php?title=File:Sn_home.png&diff=915File:Sn home.png2009-11-10T16:27:42Z<p>Isaac: uploaded a new version of "File:Sn home.png"</p>
<hr />
<div></div>Isaachttps://www.sharcnet.ca/help/index.php?title=File:Sn_home.png&diff=914File:Sn home.png2009-11-10T16:26:28Z<p>Isaac: </p>
<hr />
<div></div>Isaachttps://www.sharcnet.ca/help/index.php?title=File:Resource_at_a_glance.gif&diff=911File:Resource at a glance.gif2009-11-10T16:20:41Z<p>Isaac: </p>
<hr />
<div></div>Isaachttps://www.sharcnet.ca/help/index.php?title=File:Resource_at_a_glance.png&diff=910File:Resource at a glance.png2009-11-10T16:18:10Z<p>Isaac: </p>
<hr />
<div></div>Isaachttps://www.sharcnet.ca/help/index.php?title=File:Network.jpg&diff=824File:Network.jpg2009-10-02T04:21:58Z<p>Isaac: </p>
<hr />
<div></div>Isaachttps://www.sharcnet.ca/help/index.php?title=File:Network.png&diff=823File:Network.png2009-10-02T04:18:34Z<p>Isaac: uploaded a new version of "File:Network.png"</p>
<hr />
<div></div>Isaachttps://www.sharcnet.ca/help/index.php?title=File:Network.png&diff=822File:Network.png2009-10-02T04:16:29Z<p>Isaac: </p>
<hr />
<div></div>Isaac