diff --git a/mpcdf_common.py b/mpcdf_common.py index aa9d161311f02e4c299a7ee1388ce5f433227c4e..a0269802541d4ac638c400691a462a4d9cd8fd69 100644 --- a/mpcdf_common.py +++ b/mpcdf_common.py @@ -29,6 +29,14 @@ mpi_parallel_studio = {value["impi"]: dict({"ps": key}, **value) for key, value compiler_parallel_studio = {value["compiler"]: dict({"ps": key}, **value) for key, value in intel_parallel_studio.items()} +def valid_pgi_mpi(pgi, mpi): + if "impi" not in mpi: + return False + if "2017" in mpi: + return False + return True + + def valid_mpi(compiler, mpi): """ It might be possible to use Intel MPI libararies and compilers from @@ -40,6 +48,8 @@ def valid_mpi(compiler, mpi): """ if compiler.startswith("intel") and mpi.startswith("impi"): return mpi == compiler_parallel_studio[compiler]["impi"] + if compiler.startswith("pgi"): + return valid_pgi_mpi(compiler, mpi) else: return True @@ -291,7 +301,7 @@ def mpcdf_enable_repositories(api_url, project, package, verbose=False, filter_r if flag == "cuda_mpi": for cuda, mpi, compiler in product(actual_cudas(), actual_mpis(), all_compilers): if valid_cuda(cuda, compiler) and valid_mpi(compiler, mpi): - enable(cuda + "_" + mpi + "_" + compiler) + enable(cuda + "_" + mpi + "_" + compiler) if flag == "pgi": for pgi in actual_pgis(): @@ -299,7 +309,8 @@ def mpcdf_enable_repositories(api_url, project, package, verbose=False, filter_r if flag == "pgi_mpi": for mpi, pgi in product(actual_mpis(), actual_pgis()): - enable(mpi + "_" + pgi) + if valid_pgi_mpi(pgi, mpi): + enable(mpi + "_" + pgi) if len(build.getchildren()) > 0: build.getchildren()[-1].tail = "\n "