Hi Shahzeb,

This looks like an interesting contribution. I have a few comments for you
below.

- I agree with the comments of Kenneth, especially when he says you need to
"have some way of defining both version-agnostic and version-specific
tests". I would extend the constraint to the module name as well. In the
sense, you should find a way to have some tests applying to different
modules. For example, for OpenMPI, MPICH, MVAPICH, most of the tests would
be the same. I guess it applies to BLAS too.

So, I would say that for each test, you need a way to describe to which
modules and versions it applies.
One idea for that could be use test labels (cf CTest documentation). For
example:

add_test(NAME MPI-hello_c COMMAND sh hello_c.sh )
set_tests_properties(MPI-hello_c PROPERTIES *LABELS mpi* ) # this should
work with any MPI

add_test(NAME OpenMPI-ompi_info COMMAND sh ompi_info.sh )
set_tests_properties(OpenMPI-ompi_info PROPERTIES *LABELS openmpi* ) #
applies to OpenMPI, any version

add_test(NAME OpenMPI-2.0.1-featureXXX COMMAND sh test_feature_XXXX.sh )
set_tests_properties(OpenMPI-2.0.1-featureXXX PROPERTIES *LABELS *
*openmpi-2.0.1* ) # applies to OpenMPI version 2.0.1 only


Then, you can use option -L of CTest to select only a subset of tests. For
example:


ctest -L '^(*mpi*|*openmpi*|*openmpi-2.0.1*)$' # to test *OpenMPI/2.0.1*
ctest -L '^(*mpi*|*openmpi*|*openmpi-2.0.0*)$' # to test *OpenMPI/2.0.0*
ctest -L '^(*mpi*|*mpich*|*mpich-3.2*)$'       # to test *MPICH/3.2*


This would also mean you need to reorganize the tests in your repository to
replace the module name/version directory hierarchy by a kind of
categorization.


- About the compilation of the tests:
I believe the compilation should be a test itself. Being able to run
successfully *mpicc hello.c -o hello_c *is a good starting point to test an
MPI.
Be aware that with CTest, you can also specify dependencies between tests
and required files:
- DEPENDS: a test should run after another, eg make sure you run hello_c
after compiling it
- REQUIRED_FILES: a test should run only if a file exists, eg make sure you
run hello_c only if it has been created


- One thing that is missing so far is the possibility to run tests on two
physical nodes. Most of the MPI errors/misconfigurations I got happened
when trying to start 2 MPI processes on 2 different nodes. This probably
means that you have to run the tests as a job submitted to the cluster and
pass the list of nodes to run on.
This was actually my main motivation when I setup
https://github.com/besserox/ATIS/tree/master/MPI and
http://cdash.uni.lu/index.php?project=UL-HPC-Testing.


- If you have trouble installing CDash, maybe you can get started with
http://my.cdash.org/ to get an overview of it (free for 10 submissions per
day). Then it's very easy to switch to your self-hosted instance once you
got it working.


Regards,

Xavier



On Thu, Mar 9, 2017 at 2:58 PM, Siddiqui, Shahzeb <
shahzeb.siddi...@pfizer.com> wrote:

> Hi Fotis,
>
> I was trying to get CDash working but I had a pain getting all the
> dependencies working. PHP version on RHEL7 was not satisfying minimum req.
> I am looking to see if docker can work in resolving this. To my
> understanding CDash would be configured by the user and it needs apache and
> mysql or postgres. This would be a pain getting all of these setup which is
> outside the scope of this project. Hopefully docker would alleviate this
> pain.
>
> Regards,
>
> -----Original Message-----
> From: easybuild-requ...@lists.ugent.be [mailto:easybuild-request@
> lists.ugent.be] On Behalf Of Fotis Georgatos
> Sent: Thursday, March 9, 2017 12:06 AM
> To: easybuild@lists.ugent.be
> Subject: Re: [easybuild] HPC Testing Framework Collaboration
>
> Hi Shanzeb,
>
> just 2 comments:
> * I'd love to see the ctest/cdash type of testing take off;
>   here's an example from our past endeavours:
> http://cdash.uni.lu/index.php?project=UL-HPC-Testing
> * this one caught my attention recently; it might work in favour of
> literate testing (and, indirectly, useful documentation):
>   https://bitbucket.org/michilu/shell-doctest
>
> HPL against popular toolchain variants would make a good first focus of
> such effort, wouldn't it?!
>
> enjoy,
> F.
>
> On Mar 7, 2017, at 4:31 PM, Siddiqui, Shahzeb <shahzeb.siddi...@pfizer.com>
> wrote:
>
> > Hello,
> >
> > I have been working on creating a testing framework to automatically
> generate test cases for applications that work with EasyBuild in a HMNS
> module layout. I couldn't seem to find any tool that provides test cases
> for HPC apps that work properly with a module environment so I decided to
> create me own.
> >
> > I have pushed some test cases for intel, gcc, openmpi, mpich as
> > examples. If anyone is interested in developing a testing framework,
> check out  https://github.com/shahzebsiddiqui/testgen-HPC and maybe we
> can collaborate on a standard for basic test cases for each application.
> >
> > Regards,
> >
> >
> >
> >
> > Shahzeb Siddiqui
> > HPC Linux Engineer
> > B2220-447.2
> > Groton, CT
>
> cheers,
> Fotis
>
>
> --
> echo "sysadmin know better bash than english" | sed s/min/mins/ \
>   | sed 's/better bash/bash better/' # signal detected in a CERN forum
>
>
>
>
>
>
>
>


-- 
Dr Xavier BESSERON
Research associate
FSTC, University of Luxembourg
Campus Kirchberg, Office E-007
Phone: +352 46 66 44 5418
http://luxdem.uni.lu/

Reply via email to