Announcement

Collapse
No announcement yet.

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

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

  • uncle_fungus
    replied
    Ok v0.3 with fixed flop counting, verbosity and result parsing.

    Patch:
    Code:
    diff --git a/pts/test-profiles/md-gromacs.xml b/pts/test-profiles/md-gromacs.xml
    index 548a63d..20da79f 100644
    --- a/pts/test-profiles/md-gromacs.xml
    +++ b/pts/test-profiles/md-gromacs.xml
    @@ -1,6 +1,6 @@
     <PhoronixTestSuite>
            <TestProfile>
    -               <Version>0.2</Version>
    +               <Version>0.3</Version>
                    <TestType>Processor</TestType>
                    <SoftwareType>Scientific</SoftwareType>
                    <License>FREE</License>
    @@ -13,7 +13,7 @@
                    <Version>3.3.3</Version>
                    <TimesToRun>3</TimesToRun>
                    <Executable>gromacs</Executable>
    -               <ResultScale>Gflops</ResultScale>
    +               <ResultScale>GFLOPS</ResultScale>
                    <Proportion>HIB</Proportion>
                    <Description>This test runs a series of molecular dynamics simulations using the GROMACS MD package. This test 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 [email protected] distributed computing project.</Description>
                    <ExternalDependencies>build-utilities, fortran-compiler</ExternalDependencies>
    diff --git a/pts/test-resources/md-gromacs/install.sh b/pts/test-resources/md-gromacs/install.sh
    index 2e0e375..21ff98f 100644
    --- a/pts/test-resources/md-gromacs/install.sh
    +++ b/pts/test-resources/md-gromacs/install.sh
    @@ -44,8 +44,12 @@ if [ -d $THIS_DIR/gmxbench ]
       then
         rm -rf $THIS_DIR/gmxbench/
     fi
    +if [ -f $THIS_DIR/flopcount ]
    +  then
    +    rm -f $THIS_DIR/flopcount
    +fi
     mkdir $THIS_DIR/gmxbench
    -tar -xvf gmxbench-3.0.tar.gz -C $THIS_DIR/gmxbench/
    +tar -xvf gmxbench-3.0.tar.gz -C $THIS_DIR/gmxbench/ &>/dev/null
    
     case "\$1" in
     \"villin\")
    @@ -71,18 +75,20 @@ esac
    
     case "\$2" in
     \"mpi\")
    -       $THIS_DIR/gromacs333_/bin/grompp -np \$NUM_CPU_CORES
    -       $THIS_DIR/mpich2_/bin/mpiexec -np \$NUM_CPU_CORES $THIS_DIR/gromacs333_/bin/mdrun 2>&1
    +       $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
            ;;
     \"single-node\")
    -       $THIS_DIR/gromacs333_/bin/grompp
    -       $THIS_DIR/gromacs333_/bin/mdrun_single 2>&1
    +       $THIS_DIR/gromacs333_/bin/grompp -nov &>/dev/null
    +       $THIS_DIR/gromacs333_/bin/mdrun_single &> $THIS_DIR/flopcount
            ;;
     *)
            exit
            ;;
     esac
    
    +grep -C 1 'Performance:' $THIS_DIR/flopcount
    +
     cd $THIS_DIR/
     sleep 3" > gromacs
     chmod +x gromacs
    diff --git a/pts/test-resources/md-gromacs/parse-results.php b/pts/test-resources/md-gromacs/parse-results.php
    index c9b3c9f..74f622a 100644
    --- a/pts/test-resources/md-gromacs/parse-results.php
    +++ b/pts/test-resources/md-gromacs/parse-results.php
    @@ -1,5 +1,29 @@
     <?php
    
    +preg_match("/\((.{0,1})Flops\)/", $argv[1], $match);
    +
    +switch($match[1])
    +{
    +       case 'K':
    +               $factor = 0.000001;
    +               break;
    +       case 'M':
    +               $factor = 0.001;
    +               break;
    +       case 'G':
    +               $factor = 1;
    +               break;
    +       case 'T':
    +               $factor = 1000;
    +               break;
    +       case 'P':
    +               $factor = 1000000;
    +               break;
    +       default:
    +               $factor = 0.000000001; //nothing detected, therefore flops
    +               break;
    +}
    +
     $BENCHMARK_RESULTS = substr($argv[1], strpos($argv[1], "Performance:"));
     $BENCHMARK_RESULTS = substr($BENCHMARK_RESULTS, 0, strpos($BENCHMARK_RESULTS, "\n"));
     $array = explode(" ", $BENCHMARK_RESULTS);
    @@ -10,5 +34,5 @@ foreach($array as $value)
                    array_push($array2, $value);
    
     if(!empty($array2[2]))
    -       echo $array2[2];
    +       echo $array2[2] * $factor;
     ?>
    Full download http://fire-salamander.co.uk/pts-tes...cs-0.3.tar.bz2

    Leave a comment:


  • uncle_fungus
    replied
    I think for the moment I'll just convert everything to Gflops in the parser and see what happens.
    I've managed to clean up the output, and I haven't had the parser fail on me yet, so I think that bug is fixed.

    Leave a comment:


  • Michael
    replied
    Originally posted by uncle_fungus View Post
    What happens if I run a test on two different machines and they report different scales (1 reports Mflops, the other Gflops)?
    Hmmm good question. At this point there is no support in the merge results functionality for converting result formats..... Though you could just turn all md-gromacs results into mflops or gflops in the results parser and then just have them all be the same. I haven't run into a test yet aside from this where there have been two different scales, but always convert back to one.

    Leave a comment:


  • uncle_fungus
    replied
    What happens if I run a test on two different machines and they report different scales (1 reports Mflops, the other Gflops)?

    Leave a comment:


  • Michael
    replied
    Originally posted by uncle_fungus View Post
    There might be another change I need to make in the parser too, as the result from this test: http://global.phoronix-test-suite.co...574-12613-5219 is impossible. The magnitude of the flop counter changes according to the results of the simulation. In the case above, it was reporting Mflops not Gflops.

    I feel a 0.2 release coming on
    Supported in git is now:

    Allow the test results scale to be defined outside of the XML test profile and inside the test's benchmarking environment directory with the scale being the contents of pts-results-scale file
    So if inside your script, you have it "echo gflops > pts-results-scale" inside of your testing directory of where the files are saved at, etc. and it's not defined inside the XML file, it will use that for your scale. So then you would print out mflops or gflops when the test runs. Got it?

    Leave a comment:


  • uncle_fungus
    replied
    From the point of view of benchmarking maybe there isn't a need for the selection to be manual, but from the point of view of running GROMACS there are instances when running multiple single-node runs would be preferable to one parallel run. This is mostly because the current release of GROMACS doesn't scale perfectly in parallel runs (CVS versions are much better, but that is beyond the scope of this benchmark).

    The parallel runs aren't really "threading," they're launching n copies of GROMACS and communicating via MPI.

    Leave a comment:


  • Michael
    replied
    Also, is there a reason why:

    Run-type:

    1: Single Node (1 thread)
    2: Parallel (multiple threads)


    isn't automatic depending upon the number of CPU cores?

    Leave a comment:


  • uncle_fungus
    replied
    Yes, I thought that might be the reason, since both programs that have to be run are very verbose.

    There might be another change I need to make in the parser too, as the result from this test: http://global.phoronix-test-suite.co...574-12613-5219 is impossible. The magnitude of the flop counter changes according to the results of the simulation. In the case above, it was reporting Mflops not Gflops.

    I feel a 0.2 release coming on

    Leave a comment:


  • Michael
    replied
    Fixed in git.

    I still haven't experienced the results parsing bug that you mentioned occurs sometimes at random. However, what I believe it may be attributed to is everything that's printed out to stdout. If you look at the other tests, there isn't much printed out (and what's printed out is what's sent to your parse results). If you add some greps to your install.sh in the creation of your md-gromacs file, to have it only grep like the performance: line or to just make it not print so much to the screen that isn't needed to parse the results, that would probably address the issue if this is indeed the problem.

    Leave a comment:


  • uncle_fungus
    replied
    Thanks Michael!

    I've noticed a typo in the md-gromacs test profile though:
    Code:
    --- a/md-gromacs.xml    2008-05-07 07:03:54.000000000 +0100
    +++ b/md-gromacs.xml    2008-05-07 06:36:42.000000000 +0100
    @@ -17,7 +17,7 @@
             <ResultScale>Gflops</ResultScale>
             <Proportion>HIB</Proportion>
             <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 [email protected] distributed computing project.</Description>
    -        <ExxternalDependencies>build-utilities</ExternalDependencies>
    +        <ExternalDependencies>build-utilities</ExternalDependencies>
         </TestInformation>
         <TestSettings>
             <Option>

    Leave a comment:

Working...
X