precice / systemtests

Testing preCICE / solver combinations using Docker
GNU General Public License v3.0
3 stars 4 forks source link

Add parallel versions of tests #59

Open MakisH opened 5 years ago

MakisH commented 5 years ago

At the moment we run all the tests in serial (e.g. using the Allrun script). It would be good for every adapter to include also a parallel version (e.g. using the Allrun_parallel script).

We don't need to run everything in parallel, but we should make sure that at least every feature of every adapter is tested. The following features should be tested also in parallel (edit to add more):

Alternatively, we could convert all the current test cases to parallel, considering that they set a superset of features.

MakisH commented 5 years ago

If we add both serial and parallel cases, then #58 is relevant.

uekerman commented 5 years ago

By parallel testcase, do you refer to inter-solver parallelism (i.e. parallel coupling) or intra-solver parallelism (i.e. a solver is started on multiple ranks)?

I guess intra-solver parallelism, but then the remark about SSI above confuses me, as CCX does not support intra-solver parallelism.

In the end, the purpose of the system tests is mainly to test the adapters and the interplay of the adapters with precice. In my opinion, we don't need to test every single feature of preCICE. For that, we have the integration tests.

Alternatively, we could convert all the current test cases to parallel, considering that they set a superset of features.

This might not be a good idea (again assuming that you mean intra-solver parallelism). Parallel is not necessarily a superset. Also, we want to keep them as tutorials, right? Then, serial is better to start with.

Last remark: In the long run, the precice config should be the same for serial and parallel solvers, probably simplifying all this. I just created an issue: https://github.com/precice/precice/issues/347

MakisH commented 5 years ago

Indeed, I refer to intra-sover parallelism and indeed, this does not make sense for a CalculiX-only case.

Looking from the perspective of adapters development, I would be more confident if we also tested the decomposed cases. It is not about the preCICE features, but it's about the adapters getting/setting correct values. This could me easily messed up without noticing, therefore the automation.

Keep in mind that the system tests have a dual purpose: to test (changes in) preCICE in complete problems, but also to test (changes in) every adapter in complete problems.

uekerman commented 5 years ago

Yes, I completely agree that we should also test the adapters in parallel. Not every case, but we should cover all adapter features.

Please ignore my comment:

In the end, the purpose of the system tests is mainly to test the adapters and the interplay of the adapters with precice. In my opinion, we don't need to test every single feature of preCICE. For that, we have the integration tests.

This was due to the fact that I thought you wanted to test parallel coupling schemes.