Announcement

Collapse
No announcement yet.

New test-set (md-gromacs) & suite (molecular-dynamics)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • New test-set (md-gromacs) & suite (molecular-dynamics)

    I've put together a test-set for the GROMACS molecular dynamics package for benchmarking processors (and memory subsystems to some extent) since this interests me.

    Description:
    This test runs a series of molecular dynamics simulations using the GROMACS MD package. This benchmark is capable of running on multiple cores by using the MPICH2 library, and is similar in configuration to the SMP GROMACS cores (FahCore_a1) used by the Folding@home distributed computing project.
    The test-set includes 4 molecules that can be simulated, and the tests can be run in single or multiprocessor modes.

    The molecular-dynamics test suite runs 4 tests from the md-gromacs test-set at present. 2 single and 2 multiprocessor.

    Notes:
    * This version still appears to have a bug in its result parsing. Sometimes the parser doesn't read (or doesn't actually get passed) the results. The tests run 3 times each, so even with this bug you should at least get 1 result back.
    * The software used requires a fortran compiler. I'm not sure how to add that the the prerequisites of the tests.

    Link to v0.1 of this test-set/suite: http://fire-salamander.co.uk/pts-tes...cs-0.1.tar.bz2

  • uncle_fungus
    replied
    The patch seems to have worked. Thanks.

    Leave a comment:


  • Michael
    replied
    Thanks, as always, the updated test profile and suite are now in git. If you could test it out, that would be great. There was a problem applying the patch so I had to do it manually.

    Leave a comment:


  • uncle_fungus
    replied
    Update for md-gromacs test profile and molecular-dynamics test suite.
    Reduces overall environment size by removing redundant binaries and adds double precision tests to the profile and suite.

    Code:
    diff --git a/pts/test-profiles/md-gromacs.xml b/pts/test-profiles/md-gromacs.xml
    index 833f9bb..5bb56cc 100644
    --- a/pts/test-profiles/md-gromacs.xml
    +++ b/pts/test-profiles/md-gromacs.xml
    @@ -1,13 +1,13 @@
     <PhoronixTestSuite>
         <TestProfile>
    -        <Version>1.0.0</Version>
    +        <Version>1.1.0</Version>
             <TestType>Processor</TestType>
             <SoftwareType>Scientific</SoftwareType>
             <License>FREE</License>
             <Status>VERIFIED</Status>
             <Maintainer>Andrew Schofield</Maintainer>
             <DownloadSize>30</DownloadSize>
    -        <EnvironmentSize>247</EnvironmentSize>
    +        <EnvironmentSize>106</EnvironmentSize>
         </TestProfile>
         <TestInformation>
             <Title>GROMACS MD Benchmark</Title>
    @@ -59,5 +59,20 @@
                     </Entry>
                 </Menu>
             </Option>
    +        <Option>
    +            <DisplayName>Precision</DisplayName>
    +            <Identifier>precision</Identifier>
    +            <ArgumentName></ArgumentName>
    +            <Menu>
    +                <Entry>
    +                    <Name>Single Precision (SSE)</Name>
    +                    <Value>single</Value>
    +                </Entry>
    +                <Entry>
    +                    <Name>Double Precision (SSE2)</Name>
    +                    <Value>double</Value>
    +                </Entry>
    +            </Menu>
    +        </Option>
         </TestSettings>
     </PhoronixTestSuite>
    diff --git a/pts/test-resources/md-gromacs/install.sh b/pts/test-resources/md-gromacs/install.sh
    index c343439..5c10044 100644
    --- a/pts/test-resources/md-gromacs/install.sh
    +++ b/pts/test-resources/md-gromacs/install.sh
    @@ -1,6 +1,9 @@
     #!/bin/sh
     
     THIS_DIR=$(pwd)
    +rm -rf $THIS_DIR/fftw_
    +rm -rf $THIS_DIR/mpich2_
    +rm -rf $THIS_DIR/gromacs333_
     mkdir $THIS_DIR/fftw_
     mkdir $THIS_DIR/mpich2_
     mkdir $THIS_DIR/gromacs333_
    @@ -27,16 +30,28 @@ rm -rf mpich2-1.0.7/
     
     tar -xvf gromacs-3.3.3.tar.gz
     cd gromacs-3.3.3/
    -./configure --prefix=$THIS_DIR/gromacs333_ --enable-mpi CPPFLAGS=-I$THIS_DIR/fftw_/include LDFLAGS=-L$THIS_DIR/fftw_/lib PATH=$THIS_DIR/mpich2_/bin/:$PATH
    +./configure --prefix=$THIS_DIR/gromacs333_ --enable-mpi --program-suffix="_SSE_MPI" CPPFLAGS=-I$THIS_DIR/fftw_/include LDFLAGS=-L$THIS_DIR/fftw_/lib PATH=$THIS_DIR/mpich2_/bin/:$PATH
     make -j $NUM_CPU_JOBS PATH=$THIS_DIR/mpich2_/bin/:$PATH
     make install
     make clean
    -./configure --prefix=$THIS_DIR/gromacs333_ CPPFLAGS=-I$THIS_DIR/fftw_/include LDFLAGS=-L$THIS_DIR/fftw_/lib --program-suffix="_single"
    -make mdrun
    -make install-mdrun
    +./configure --prefix=$THIS_DIR/gromacs333_ CPPFLAGS=-I$THIS_DIR/fftw_/include LDFLAGS=-L$THIS_DIR/fftw_/lib --program-suffix="_SSE"
    +make -j $NUM_CPU_JOBS
    +make install
    +make clean
    +./configure --prefix=$THIS_DIR/gromacs333_ --enable-mpi --disable-float --program-suffix="_SSE2_MPI" CPPFLAGS=-I$THIS_DIR/fftw_/include LDFLAGS=-L$THIS_DIR/fftw_/lib PATH=$THIS_DIR/mpich2_/bin/:$PATH
    +make -j $NUM_CPU_JOBS PATH=$THIS_DIR/mpich2_/bin/:$PATH
    +make install
    +make clean
    +./configure --prefix=$THIS_DIR/gromacs333_ CPPFLAGS=-I$THIS_DIR/fftw_/include LDFLAGS=-L$THIS_DIR/fftw_/lib --disable-float --program-suffix="_SSE2"
    +make -j $NUM_CPU_JOBS
    +make install
     cd ..
     rm -rf gromacs-3.3.3/
     
    +cd gromacs333_/bin
    +ls --indicator-style=none | grep -i -v -e "grompp\|mdrun" | xargs rm
    +cd ../..
    +
     echo "#!/bin/sh
     if [ -d $THIS_DIR/gmxbench ]
       then
    @@ -49,6 +64,18 @@ fi
     mkdir $THIS_DIR/gmxbench
     tar -xvf gmxbench-3.0.tar.gz -C $THIS_DIR/gmxbench/ 1>/dev/null 2>&1
     
    +case "\$3" in
    +\"single\")
    +    PRECISION=\"SSE\"
    +    ;;
    +\"double\")
    +    PRECISION=\"SSE2\"
    +    ;;
    +*)
    +    exit
    +    ;;
    +esac
    +
     case "\$1" in
     \"villin\")
         cd $THIS_DIR/gmxbench/d.villin/
    @@ -67,18 +94,15 @@ case "\$1" in
         exit
         ;;
     esac
    -#cat grompp.mdp | sed 's/nsteps                   = 5000/nsteps                   = 5000/' > grompp.mdp.new
    -#rm -f grompp.mdp
    -#mv grompp.mdp.new grompp.mdp
     
     case "\$2" in
     \"mpi\")
    -    $THIS_DIR/gromacs333_/bin/grompp -np \$NUM_CPU_CORES -nov 1>/dev/null 2>&1
    -    $THIS_DIR/mpich2_/bin/mpiexec -np \$NUM_CPU_CORES $THIS_DIR/gromacs333_/bin/mdrun 1>$THIS_DIR/flopcount 2>&1
    +    $THIS_DIR/gromacs333_/bin/grompp_\$PRECISION\_MPI -np \$NUM_CPU_CORES -nov 1>/dev/null 2>&1
    +    $THIS_DIR/mpich2_/bin/mpiexec -np \$NUM_CPU_CORES $THIS_DIR/gromacs333_/bin/mdrun_\$PRECISION\_MPI 1>$THIS_DIR/flopcount 2>&1
         ;;
     \"single-node\")
    -    $THIS_DIR/gromacs333_/bin/grompp -nov 1>/dev/null 2>&1
    -    $THIS_DIR/gromacs333_/bin/mdrun_single 1>$THIS_DIR/flopcount 2>&1
    +    $THIS_DIR/gromacs333_/bin/grompp_\$PRECISION -nov 1>/dev/null 2>&1
    +    $THIS_DIR/gromacs333_/bin/mdrun_\$PRECISION 1>$THIS_DIR/flopcount 2>&1
         ;;
     *)
         exit
    diff --git a/pts/test-suites/molecular-dynamics.xml b/pts/test-suites/molecular-dynamics.xml
    index 2f12809..4714a4a 100644
    --- a/pts/test-suites/molecular-dynamics.xml
    +++ b/pts/test-suites/molecular-dynamics.xml
    @@ -1,6 +1,6 @@
     <PhoronixTestSuite>
         <SuiteInformation>
    -        <Version>1.0.0</Version>
    +        <Version>1.1.0</Version>
             <TestType>Processor</TestType>
             <Title>Molecular Dynamics Test Suite</Title>
             <Maintainer>Andrew Schofield</Maintainer>
    @@ -8,22 +8,42 @@
         </SuiteInformation>
         <RunTest>
             <Test>md-gromacs</Test>
    -        <Arguments>villin single-node</Arguments>
    -        <Description>Single-node Villin</Description>
    +        <Arguments>villin single-node single</Arguments>
    +        <Description>Single-node Villin with Single Precision</Description>
         </RunTest>
         <RunTest>
             <Test>md-gromacs</Test>
    -        <Arguments>villin mpi</Arguments>
    -        <Description>Parallel Villin</Description>
    +        <Arguments>villin single-node double</Arguments>
    +        <Description>Single-node Villin with Double Precision</Description>
         </RunTest>
         <RunTest>
             <Test>md-gromacs</Test>
    -        <Arguments>lzm single-node</Arguments>
    -        <Description>Single-node Lysozyme</Description>
    +        <Arguments>villin mpi single</Arguments>
    +        <Description>Parallel Villin with Single Precision</Description>
         </RunTest>
         <RunTest>
             <Test>md-gromacs</Test>
    -        <Arguments>lzm mpi</Arguments>
    -        <Description>Parallel Lysozyme</Description>
    +        <Arguments>villin mpi double</Arguments>
    +        <Description>Parallel Villin with Double Precision</Description>
    +    </RunTest>
    +    <RunTest>
    +        <Test>md-gromacs</Test>
    +        <Arguments>lzm single-node single</Arguments>
    +        <Description>Single-node Lysozyme with Single Precision</Description>
    +    </RunTest>
    +    <RunTest>
    +        <Test>md-gromacs</Test>
    +        <Arguments>lzm single-node double</Arguments>
    +        <Description>Single-node Lysozyme with Double Precision</Description>
    +    </RunTest>
    +    <RunTest>
    +        <Test>md-gromacs</Test>
    +        <Arguments>lzm mpi single</Arguments>
    +        <Description>Parallel Lysozyme with Single Precision</Description>
    +    </RunTest>
    +    <RunTest>
    +        <Test>md-gromacs</Test>
    +        <Arguments>lzm mpi double</Arguments>
    +        <Description>Parallel Lysozyme with Double Precision</Description>
         </RunTest>
     </PhoronixTestSuite>

    Leave a comment:


  • Michael
    replied
    Should be in git shortly.

    Leave a comment:


  • uncle_fungus
    replied
    Patch to add new *size info to profile (and change state to verified if that's ok).
    Code:
    diff --git a/pts/test-profiles/md-gromacs.xml b/pts/test-profiles/md-gromacs.xml
    index 20da79f..bc08eea 100644
    --- a/pts/test-profiles/md-gromacs.xml
    +++ b/pts/test-profiles/md-gromacs.xml
    @@ -4,8 +4,10 @@
                    <TestType>Processor</TestType>
                    <SoftwareType>Scientific</SoftwareType>
                    <License>FREE</License>
    -               <Status>UNVERIFIED</Status>
    +               <Status>VERIFIED</Status>
                    <Maintainer>Andrew Schofield</Maintainer>
    +               <DownloadSize>30</DownloadSize>
    +               <EnvironmentSize>231</EnvironmentSize>
            </TestProfile>
            <TestInformation>
                    <Title>GROMACS MD Benchmark</Title>

    Leave a comment:


  • Michael
    replied
    Looks like that fixed it, thanks: http://global.phoronix-test-suite.co...0513-17000-220

    Leave a comment:


  • uncle_fungus
    replied
    Patch for dash I/O redirection:

    Code:
    diff --git a/pts/test-resources/md-gromacs/install.sh b/pts/test-resources/md-gromacs/install.sh
    index 40d3ec5..491f218 100644
    --- a/pts/test-resources/md-gromacs/install.sh
    +++ b/pts/test-resources/md-gromacs/install.sh
    @@ -49,7 +49,7 @@ if [ -f $THIS_DIR/flopcount ]
         rm -f $THIS_DIR/flopcount
     fi
     mkdir $THIS_DIR/gmxbench
    -tar -xvf gmxbench-3.0.tar.gz -C $THIS_DIR/gmxbench/ &>/dev/null
    +tar -xvf gmxbench-3.0.tar.gz -C $THIS_DIR/gmxbench/ 1>/dev/null 2>&1
    
     case "\$1" in
     \"villin\")
    @@ -75,12 +75,12 @@ esac
    
     case "\$2" in
     \"mpi\")
    -       $THIS_DIR/gromacs333_/bin/grompp -np \$NUM_CPU_CORES -nov &>/dev/null
    -       $THIS_DIR/mpich2_/bin/mpiexec -np \$NUM_CPU_CORES $THIS_DIR/gromacs333_/bin/mdrun &> $THIS_DIR/flopcount
    +       $THIS_DIR/gromacs333_/bin/grompp -np \$NUM_CPU_CORES -nov 1>/dev/null 2>&1
    +       $THIS_DIR/mpich2_/bin/mpiexec -np \$NUM_CPU_CORES $THIS_DIR/gromacs333_/bin/mdrun 1>$THIS_DIR/flopcount 2>&1
            ;;
     \"single-node\")
    -       $THIS_DIR/gromacs333_/bin/grompp -nov &>/dev/null
    -       $THIS_DIR/gromacs333_/bin/mdrun_single &> $THIS_DIR/flopcount
    +       $THIS_DIR/gromacs333_/bin/grompp -nov 1>/dev/null 2>&1
    +       $THIS_DIR/gromacs333_/bin/mdrun_single 1>$THIS_DIR/flopcount 2>&1
            ;;
     *)
            exit

    Leave a comment:


  • uncle_fungus
    replied
    OK, I know why. Ubuntu uses dash as it's /bin/sh and it looks like it doesn't support something I added in 0.3 (not sure what yet).

    Edit: I know what the problem is, it's I/O redirection. Patch coming shortly.
    Last edited by uncle_fungus; 05-09-2008, 08:33 AM.

    Leave a comment:


  • Michael
    replied
    Ubuntu and it had worked in the same configuration with 0.1 and 0.2 of md-gromacs

    Leave a comment:

Working...
X