# This suite is independent of UPC compiler: KnownFailureAnySpec # ------------------------------------------ # Single-threaded tests # ------------------------------------------ BEGIN_DEFAULT_CONFIG Flags: Files: DynamicThreads: $DEFAULT$ StaticThreads: 0 ProcPerNode: $DEFAULT$ Pthreads: 0 CompileResult: pass PassExpr: SUCCESS FailExpr: ERROR ExitCode: 0 BuildCmd: make,notrans AppArgs: AppEnv: report_file=- TimeLimit: $DEFAULT$ RequireFeature: gasnet,upcxx ProhibitFeature: hack_for_nonupc_test # mark this suite as non-UPC RunCmd: ./launcher -np %N %P %A MakeFlags: debug ; UPCXX_CODEMODE=debug MakeFlags: nodebug ; UPCXX_CODEMODE=O3 SaveOutput: 1 END_DEFAULT_CONFIG # ------------------------------------------ # Tests to compile, but not run TestName: _upcxx CompileTimeLimit: 4 * $DEFAULT$ ProhibitFeature: hack_for_nonupc_test || hack_for_upcxx_smoke_test WarningFilter: all ; 'WARNING: .* platform has not been validated.*?\nWARNING:.*?' WarningFilter: all ; 'WARNING: --enable-single=.*?\nWARNING:.*?\nWARNING:.*?' # `clang++ -std=c++14 -pedantic` warns if (as is the case in some of our automated # testing) GASNet configure's value of `CXX` lacks `-pedantic` and thus detects # support for this attribute. WarningFilter: cc_clang ; '.*?warning: use of the .fallthrough. attribute is a C\+\+.. extension.*?' TimeLimit: 0 TestName: _upcxx-inst CompileTimeLimit: 4 * $DEFAULT$ WarningFilter: all ; '.*?ERROR: failed to find mpirun.*?' TimeLimit: 0 # This is an opt-in only *alternative* to the full suite # Currently it runs "make check" and requires that _upcxx has been built first # Since this *runs* tests in the harness compile stage, it is not typically suited to batch environments # Usage: --suite=external-upcxx --add_feature=upcxx_smoke_test --include=prohibit-feature:hack_for_upcxx_smoke_test TestName: _upcxx-smoke_test CompileTimeLimit: 10 * $DEFAULT$ RequireFeature: upcxx,upcxx_smoke_test ProhibitFeature: hack_for_upcxx_smoke_test TimeLimit: 0 TestName: cmake-seq CompileTimeLimit: $DEFAULT$ * 2 ProhibitFeature: missing_cmake TestName: seq-threadmode-seq TimeLimit: 0 TestName: par-threadmode-seq CompileResult: fail TestName: debug-codemode-seq TimeLimit: 0 RequireFeature: upcxx,debug TestName: o3-codemode-seq TimeLimit: 0 RequireFeature: upcxx,nodebug TestName: check-testsuite TimeLimit: 0 # ------------------------------------------ # Tests that don't use GASNet # Can only be safely launched as a local executable TestName: hello-seq DynamicThreads: 1 RunCmd: %P %A PassExpr: ^Hello world # ------------------------------------------ # General Tests: TestName: hello_gasnet-seq PassExpr: ^Hello from 0 TestName: hello_upcxx-seq PassExpr: ^Hello from 0 TestName: version-seq TestName: future-seq KnownFailure: compile-failure ; cc_pgi ; issue 334: PGI 20.1 crash on test/future and when_all(one_fut).wait() TestName: serialization-seq TestName: dist_object-seq TestName: dist_when_here-seq TestName: team_when_here-seq TestName: barrier-seq TestName: rpc_barrier-seq TestName: rpc_ff_ring-seq TestName: rput-seq TestName: rput-cover-seq TestName: rput_rpc_cx-seq AppEnv: UPCXX_WARN_EMPTY_RMA=0 TestName: atomics-seq # Output scales with number of compute nodes, but we cannot "spell" that in harness.conf FileLimit: $DEFAULT$ * $THREADS$ TestName: collectives-seq #KnownFailure: compile-all ; upcxx_tests_cxx2a ; issue 368: Header compile failure with GCC 10.1 and -std=c++2a on non-trivial collectives #KnownFailure: compile-warning ; cc_gnu ; issue 376: warnings from GCC 10.1 in reduce.hpp for boolean reductions TestName: team-create-seq TestName: completion-seq TestName: local_team-seq TestName: memory_kinds-seq AppEnv: has_issue_588 ; FI_MR_CUDA_CACHE_MONITOR_ENABLED=0 TestName: uts_ranks-seq TestName: vis-seq AppEnv: UPCXX_WARN_EMPTY_RMA=0 #KnownFailure: run-crash ; os_darwin && cc_gnu ; issue 127 (Mac+gcc+VIS breaks on lpc operation with seq and par) TestName: vis_stress-seq AppEnv: UPCXX_WARN_EMPTY_RMA=0 TestName: alloc-seq AppArgs: 10 FileLimit: 1000 + 5000 * $THREADS$ TestName: copy-seq FailExpr: WARNING: UPC.. GPU support #KnownFailure: run-all ; cc_pgi ; issue 421: upcxx::copy unsupported on PGI C++ TestName: copy-cover-seq MakeFlags: cc_pgi && upcxx_issue_390 && debug ; UPCXX_TEST_FLAGS="-purge-option=-g" AppEnv: has_bug_4151 ; MLX5_SCATTER_TO_CQE=0 AppEnv: has_bug_4384 ; UCX_IB_TX_INLINE_RESP=0 UCX_ZCOPY_THRESH=0 AppEnv: has_bug_4494 ; FI_VERBS_INLINE_SIZE=0 AppEnv: has_bug_4554 ; FI_HMEM_CUDA_USE_GDRCOPY=no #KnownFailure: run-all ; cc_pgi ; issue 421: upcxx::copy unsupported on PGI C++ TestName: memberof-seq ProhibitFeature: debug && (cpu_mips64 || cpu_mips64el) # too big -> "relocation truncated to fit: R_MIPS_GOT16" # squash warnings from intentional non-compliant use of offsetof() in upcxx_memberof_unsafe: MakeFlags: cc_subfamily_nvidia && (cc_gnu || cc_clang); UPCXX_TEST_FLAGS="-Xcompiler -Wno-invalid-offsetof" MakeFlags: !cc_subfamily_nvidia && (cc_gnu || cc_clang) ; UPCXX_TEST_FLAGS="-Wno-invalid-offsetof" MakeFlags: cc_pgi && upcxx_issue_390 && debug ; UPCXX_TEST_FLAGS="--diag_suppress1427 -purge-option=-g" MakeFlags: cc_pgi && !(upcxx_issue_390 && debug) ; UPCXX_TEST_FLAGS="--diag_suppress1427" # Cygwin assembler runs out of space without optimization: MakeFlags: os_cygwin && debug ; UPCXX_TEST_FLAGS="-codemode=debug -O1 -Wno-invalid-offsetof" TestName: serialize_large_obj-seq TestName: segment_allocator-seq TestName: view-seq MakeFlags: UPCXX_TESTMODE=make KnownFailure: compile-failure ; cc_intel && os_darwin && nodebug ; issue 559 (Compile error on test/view from Intel compiler on macOS with optional.hpp) TestName: lpc_barrier-seq DynamicThreads: 1 MakeFlags: UPCXX_TESTMODE=make #MakeFlags: static_link ; UPCXX_TEST_FLAGS="-Wl,--whole-archive -lpthread -Wl,--no-whole-archive" UPCXX_TESTMODE=make # bug3813 TestName: lpc-stress-seq DynamicThreads: 1 MakeFlags: UPCXX_TESTMODE=make TestName: global_ptr-seq # squash erroneous warnings on PGI 19.10(only, issue #284) from upcxx_memberof on non-trivial type (non-trivial default constructor) MakeFlags: cc_pgi ; UPCXX_TEST_FLAGS="--diag_suppress1427" TestName: rpc-ctor-trace-seq CompileTimeLimit: $DEFAULT$ * 2 MakeFlags: cc_pgi && upcxx_issue_390 && debug ; UPCXX_TEST_FLAGS="-purge-option=-g" AppEnv: has_bug_4151 ; MLX5_SCATTER_TO_CQE=0 AppEnv: has_bug_4384 ; UCX_IB_TX_INLINE_RESP=0 UCX_ZCOPY_THRESH=0 AppEnv: has_bug_4494 ; FI_VERBS_INLINE_SIZE=0 TestName: verbose-ctor-trace-seq FileLimit: 15000 * $THREADS$ TestName: rpc_source_cx-seq TestName: lpc-ctor-trace-seq MakeFlags: UPCXX_TESTMODE=make TestName: serialize_cvref-seq TestName: version-seq TestName: bad-alloc-seq TestName: bad-segment-alloc-seq RequireFeature: upcxx_cuda || upcxx_hip TestName: cuda-context-seq RequireFeature: upcxx_cuda MakeFlags: network_ucx ; UPCXX_TEST_FLAGS="-DSKIP_DEVICE_FREE" # bug 4396 MakeFlags: network_ofi && ofi_verbs_provider ; UPCXX_TEST_FLAGS="-DSKIP_DEVICE_FREE" # bug 4504 AppEnv: has_issue_588 ; FI_MR_CUDA_CACHE_MONITOR_ENABLED=0 AppEnv: has_bug_4384 ; UCX_IB_TX_INLINE_RESP=0 UCX_ZCOPY_THRESH=0 TestName: ze_device-seq RequireFeature: upcxx_ze TestName: shared-seg-query-seq TestName: nodiscard-seq MakeFlags: cc_pgi && upcxx_issue_390 && debug ; UPCXX_TEST_FLAGS="-purge-option=-g" #KnownFailure: compile-failure ; cc_pgi && debug ; issue 390 (PGI debug symbol ICE prior to 19.4) TimeLimit: 0 TestName: as_eager-seq TestName: sys-header-exclude-seq TimeLimit: 0 TestName: optional-seq TestName: persona_scope-seq # ------------------------------------------ # Benchmarks: # The BenchmarkResult units below are in bytes/sec, but there's no way to express that in harness TestName: put_flood-seq TimeLimit: 2*$DEFAULT$ BenchmarkResult: size=8, kind="lat", how="upcxx".*?bw=([^,]+)(,) AppEnv: network_ucx; fixed_iters=5000 # work-around unbounded-buffering behavior (issue 322) #KnownFailure: run-all ; (cc_clang || cc_gnu) && nodebug ; issue 184 (bench/put_flood crashes on clang-7/opt/Linux) TestName: nebr_exchange-seq BenchmarkResult: bw=([^,]+),.*?via="rput"(,) KnownFailure: run-crash ; os_cygwin && cc_clang ; issue 188 (bench/nebr_exchange crash on Cygwin/clang) TestName: gpu_microbenchmark-seq DynamicThreads: 2 # want to avoid 2+ppn which increases PCI traffic and actually runs much slower TimeLimit: 2*$DEFAULT$ AppArgs: -t 10 -w 10 -gg -sg -gs -pg # deliberately omit host memory xfers to avoid output line limit AppEnv: UPCXX_SHARED_HEAP_SIZE=1GB AppEnv: has_bug_4151 ; MLX5_SCATTER_TO_CQE=0 AppEnv: has_bug_4384 ; UCX_IB_TX_INLINE_RESP=0 UCX_ZCOPY_THRESH=0 AppEnv: has_bug_4494 ; FI_VERBS_INLINE_SIZE=0 AppEnv: has_bug_4554 ; FI_HMEM_CUDA_USE_GDRCOPY=no BenchmarkResult: message size = 4194304 byte.*?\n\s*Local GPU -> Remote GPU:[^,]+, ([^ ]+) (GB/s) RequireFeature: upcxx_cuda || upcxx_hip FileLimit: 128*1024 #KnownFailure: run-all ; cc_pgi ; issue 421: upcxx::copy unsupported on PGI C++ MakeFlags: cc_pgi && upcxx_issue_390 && debug ; UPCXX_TEST_FLAGS="-purge-option=-g" CompileTimeLimit: $DEFAULT$ * 2 TestName: misc_perf-seq AppArgs: 1000 BenchmarkResult: upcxx::progress\s*:[^s]*s\s*([^ ]+)\s*(us) MakeFlags: cc_pgi && upcxx_issue_390 && debug ; UPCXX_TEST_FLAGS="-purge-option=-g" TestName: rpc_perf-seq AppArgs: 100 10 1048576 BenchmarkResult: 0:\s+1\s+[^s]*s\s+([^ ]+)\s*(us) # ------------------------------------------ # Regression suite: TestName: issue88-seq TestName: issue108-seq TestName: issue128-seq TestName: issue138-seq AppEnv: UPCXX_SHARED_HEAP_SIZE=128MB TimeLimit: $DEFAULT$ * 2 MakeFlags: os_cygwin ; UPCXX_TEST_FLAGS="-DMINIMAL -g0 -Wa,-mbig-obj" # issue 278 MakeFlags: (cc_pgi && !(upcxx_issue_390 && debug)) || (!cc_pgi && precious_compiler_license) ; UPCXX_TEST_FLAGS="-DMINIMAL" # issue 278 MakeFlags: cc_nvhpc && cpu_powerpc64le; UPCXX_TEST_FLAGS="-DMINIMAL" # variant on issue 278 MakeFlags: cc_pgi && upcxx_issue_390 && debug ; UPCXX_TEST_FLAGS="-DMINIMAL -purge-option=-g" MakeFlags: cpu_riscv64 ; UPCXX_TEST_FLAGS="-DMINIMAL" # no bug(s). just too slow otherwise #KnownFailure: compile-all ; cc_pgi && debug ; PGI+debug entries ICE on issue138 instantiations ProhibitFeature: cpu_mips64 || cpu_mips64el # even MINIMAL exceeds ABI limits (linker failure) TestName: issue140-seq TimeLimit: $DEFAULT$ / 4 #KnownFailure: run-time ; all ; issue 140 (upcxx::discharge() does not discharge remote_cx::as_rpc()) TestName: issue141-seq TestName: issue170-seq TestName: issue185-seq TimeLimit: 0 TestName: issue210-seq TestName: issue219-seq TimeLimit: 0 TestName: issue223-seq PassExpr: done. TestName: issue224-seq TimeLimit: 0 TestName: issue234-seq #KnownFailure: compile-all ; ; issue 234 (Generalized operation completion for barrier_async and broadcast) #KnownFailure: compile-all ; upcxx_tests_cxx2a ; issue 368: Header compile failure with GCC 10.1 and -std=c++2a on non-trivial collectives TestName: issue242-seq AppArgs: 100 AppEnv: GASNET_BACKTRACE=0 # skip backtraces for known crash KnownFailure: run-crash ; ; issue 242 (Lack of backpressure in RPC injection leads to obscure memory-exhaustion crashes) KnownFailure: run-all ; os_cygwin ; Cygwin's std::terminate does not behave as expected TestName: issue262-seq TestName: issue266-seq TestName: issue267-seq #KnownFailure: compile-all ; upcxx_tests_cxx2a ; issue 368: Header compile failure with GCC 10.1 and -std=c++2a on non-trivial collectives TestName: issue277-seq TestName: issue280-seq TestName: issue288-seq TestName: issue312-seq #KnownFailure: compile-all ; ; issue 312 (dist_id::here() does not compile) TestName: issue323-seq TestName: issue333-seq TimeLimit: 0 #KnownFailure: compile-all ; ; issue 333: Multiply defined symbol detail::device_allocator_core::min_alignment w/ std=c++2a TestName: issue336-seq #KnownFailure: run-all ; ; issue 336: Serialization for statically massive types ProhibitFeature: os_cygwin # leaves run-away procs consuming 100% CPU TestName: issue343-seq TestName: issue355-seq #KnownFailure: compile-all ; ; issue 355: upcxx::view broken with asymmetric deserialization TestName: issue356-seq #KnownFailure: compile-all ; ; issue 356: SERIALIZED_{FIELDS,VALUES} incorrectly require public constructors TestName: issue367-seq TestName: issue367b-seq TestName: issue371-seq TestName: issue380-seq TestName: issue391-seq TestName: issue394-seq TestName: issue400-seq TestName: issue402-seq TestName: issue405-seq #KnownFailure: run-all ; cc_pgi ; issue 421: upcxx::copy unsupported on PGI C++ TestName: issue407-seq TestName: issue408-seq TestName: issue412b-seq TimeLimit: 0 TestName: issue413-seq TestName: issue419-seq TestName: issue421-seq #KnownFailure: run-all ; cc_pgi ; issue 421: upcxx::copy unsupported on PGI C++ TestName: issue421b-seq #KnownFailure: run-all ; cc_pgi ; issue 421: upcxx::copy unsupported on PGI C++ TestName: issue421c-seq TestName: issue427-seq TestName: issue427b-seq TestName: issue428-seq TimeLimit: 0 TestName: issue440-seq TestName: issue447-seq TestName: issue450-seq TimeLimit: 0 TestName: issue462-seq TestName: issue473-seq TestName: issue477-seq TestName: issue478-seq TestName: issue482-seq TestName: issue483-seq TestName: issue512-seq TestName: issue547-seq MakeFlags: !cc_subfamily_nvidia && (cc_clang || cc_gnu) ; UPCXX_TEST_FLAGS="-Wno-self-move" MakeFlags: cc_subfamily_nvidia && (cc_clang || cc_gnu) ; UPCXX_TEST_FLAGS="-Xcompiler -Wno-self-move" TestName: issue552-seq TestName: issue609-seq TestName: issue613b-seq TimeLimit: 0 TestName: spec-issue104-seq TestName: spec-issue144b-seq TestName: spec-issue144c-seq TestName: spec-issue158-seq TestName: spec-issue160-seq TestName: spec-issue170-seq TestName: spec-issue176-seq TestName: spec-issue189-seq AppEnv: has_issue_588 ; FI_MR_CUDA_CACHE_MONITOR_ENABLED=0 TestName: spec-issue198-seq TestName: spec-issue199-seq TestName: spec-issue204-seq # Spurious warning seen with `-Wall` and GCC 13: KnownFailure: compile-warning ; cc_gnu && !debug; issue 613: Warnings from persona.hpp # ------------------------------------------ # Guide examples: TestName: hello-world-seq PassExpr: ^Hello world from TestName: rb1d-seq PassExpr: ^Converged at 5590 TestName: rb1d-rpc-seq PassExpr: ^Converged at 5590 TestName: rb1d-rpcinit-seq PassExpr: ^Converged at 5590 TestName: dmap-test-seq TestName: dmap-async-insert-test-seq TimeLimit: $DEFAULT$ * 1.5 TestName: dmap-async-find-test-seq TimeLimit: $DEFAULT$ * 1.5 TestName: dmap-quiescence-test-seq TestName: dmap-atomics-test-seq TestName: dmap-conjoined-test-seq TestName: dmap-promises-test-seq TestName: team_simple-seq TestName: team_advanced-seq TestName: team_create_sub-seq TestName: local-team-seq TestName: non-contig-example-seq TestName: view-accumulate-seq TestName: view-histogram1-seq TestName: view-histogram2-seq TestName: h-d-seq RequireFeature: upcxx_cuda AppEnv: has_bug_4384 ; UCX_IB_TX_INLINE_RESP=0 UCX_ZCOPY_THRESH=0 #KnownFailure: run-all ; cc_pgi ; issue 421: upcxx::copy unsupported on PGI C++ TestName: h-d-remote-seq RequireFeature: upcxx_cuda AppEnv: has_bug_4384 ; UCX_IB_TX_INLINE_RESP=0 UCX_ZCOPY_THRESH=0 #KnownFailure: run-all ; cc_pgi ; issue 421: upcxx::copy unsupported on PGI C++ TestName: serial-fields-seq TestName: serial-values-seq TestName: serial-recursive-seq TestName: serial-custom-seq TestName: rput-rpc-seq # default "fast floating point mode" in recent oneAPI compilers leads to nuisance warnings (two versions): WarningFilter: cc_clang ; '.*?warning: comparison with NaN always evaluates to false in fast floating point modes.*?' WarningFilter: cc_clang ; '.*?warning: explicit comparison with NaN in fast floating point mode.*?' TestName: reduce-complex-minloc-seq TestName: broadcast-example-seq # ------------------------------------------ # serialization examples TestName: upcxx_serialized_fields-seq TestName: upcxx_serialized_values-seq TestName: upcxx_serialized_fields_recursive-seq TestName: upcxx_serialized_values_recursive-seq TestName: upcxx_serialization-seq TestName: upcxx_serialization_nested-seq TestName: serialize_abstract_base-seq TestName: unrolled_list-seq # ------------------------------------------ # General examples TestName: compute-pi-seq AppArgs: 10000 PassExpr: ^pi estimate: 3.1 TestName: compute-pi-multi-examples-seq AppArgs: 10000 TestName: rpc-then-rget-seq TestName: team-self-seq # ------------------------------------------ # Tutorial examples/exercises: # hello-world-file deliberately skipped because it outputs exclusively to file # hello-world-file-synchronized deliberately skipped because it calls sync() TestName: hello-world-rpc-to-0-seq PassExpr: Hello from TestName: jac1d-seq TestName: dmap-insert-test-seq TestName: dmap-erase-update-test-seq TestName: drmap-insert-test-seq TestName: pi-no-overlap-seq PassExpr: PI estimated to 3 TestName: pi-conjoined-seq PassExpr: PI estimated to 3 TestName: pi-no-barrier-seq PassExpr: PI estimated to 3 TestName: ex1-seq PassExpr: # no convenient way to validate output.txt TestName: ex2-seq TestName: ex3-seq TestName: ex4-seq MakeFlags: UPCXX_TEST_FLAGS="-DFIND_CHECKS" KnownFailure: run-crash ; network_ibv && has_bug_4039 ; Bug 4039 - intermittent ibv crashes in upcxx/ex4 # ------------------------------------------ # upcxx-extras TestName: allocator-example-seq TestName: vector_accumulate_example-seq TestName: rpc_ff_quiescence-seq TestName: padded_device_allocator-example-seq RequireFeature: upcxx_cuda || upcxx_hip TestName: laplace2d-seq AppArgs: 100 4096 TestName: cannon-seq AppArgs: 2048 AppEnv: UPCXX_SHARED_HEAP_SIZE=256MB DynamicThreads: 1, 4, 16 # Cannon alg requires a perfect square rank count BenchmarkResult: Compute:\s*(\S+)\s*(s) ProhibitFeature: missing_cblas || (os_darwin && cc_gnu) # Homebrew gcc cannot parse Apple #KnownFailure: run-all ; cc_pgi ; issue 421: upcxx::copy unsupported on PGI C++ TestName: cannon_cuda-seq AppArgs: (_threads == 1) ; 512 # reduce matrix size for single-rank, avoid BAR1 limit on Tesla AppArgs: (_threads > 1) ; 2048 AppEnv: UPCXX_SHARED_HEAP_SIZE=256MB DynamicThreads: 1, 4, 16 # Cannon alg requires a perfect square rank count RequireFeature: upcxx_cuda_compute_30 BenchmarkResult: Compute:\s*(\S+)\s*(s) ProhibitFeature: missing_cblas || missing_cublas || (os_darwin && cc_gnu) # Homebrew gcc cannot parse Apple #KnownFailure: run-match ; (_threads > 4) ; issue 381 (cannon_cuda fails to validate with 16 ranks) #KnownFailure: run-all ; cc_pgi ; issue 421: upcxx::copy unsupported on PGI C++ # ------------------------------------------ # upcxx-extras dist_array TestName: DA-alltoall-seq TestName: DA-basic-seq TestName: DA-cache-seq TestName: DA-fileinput-seq TestName: DA-jacobi-seq TestName: DA-scatter-seq # ------------------------------------------ # misc examples TestName: cuda_vecadd-seq RequireFeature: upcxx_cuda_compute_30 MakeFlags: nodebug ; CXXFLAGS=-O3 AppEnv: has_bug_4384 ; UCX_IB_TX_INLINE_RESP=0 UCX_ZCOPY_THRESH=0 TestName: hip_vecadd-seq RequireFeature: upcxx_hip MakeFlags: nodebug ; CXXFLAGS=-O3 AppEnv: hip_platform_nvidia && has_bug_4384 ; UCX_IB_TX_INLINE_RESP=0 UCX_ZCOPY_THRESH=0 TestName: sycl_vecadd-seq RequireFeature: upcxx_ze,sycl MakeFlags: nodebug ; CXXFLAGS=-O3 # backend compiler's warning-supression flags in LDFLAGS can lead to warnings from SYCL linker WarningFilter: '.*?warning: unknown warning option.*?' # ------------------------------------------ # Multi-threaded tests # ------------------------------------------ BEGIN_DEFAULT_CONFIG Flags: Files: DynamicThreads: $DEFAULT$ StaticThreads: 0 ProcPerNode: $DEFAULT$ Pthreads: 0 CompileResult: pass PassExpr: SUCCESS FailExpr: ERROR ExitCode: 0 BuildCmd: make,notrans AppArgs: AppEnv: report_file=- TimeLimit: $DEFAULT$ RequireFeature: gasnet_has_par,upcxx ProhibitFeature: hack_for_nonupc_test # mark this suite as non-UPC RunCmd: ./launcher -np %N %P %A MakeFlags: debug ; UPCXX_CODEMODE=debug MakeFlags: nodebug ; UPCXX_CODEMODE=O3 SaveOutput: 1 END_DEFAULT_CONFIG # ------------------------------------------ # Tests to compile, but not run TestName: cmake-par CompileTimeLimit: $DEFAULT$ * 2 ProhibitFeature: missing_cmake TestName: seq-threadmode-par CompileResult: fail TestName: par-threadmode-par TimeLimit: 0 TestName: debug-codemode-par TimeLimit: 0 RequireFeature: gasnet_has_par,upcxx,debug TestName: o3-codemode-par TimeLimit: 0 RequireFeature: gasnet_has_par,upcxx,nodebug # ------------------------------------------ # Tests that don't use GASNet # Can only be safely launched as a local executable TestName: hello_threads-par DynamicThreads: 1 RunCmd: %P %A PassExpr: ^Done MakeFlags: static_link ; UPCXX_TEST_FLAGS="-Wl,--whole-archive -lpthread -Wl,--no-whole-archive" #KnownFailure: run-crash ; os_cnl ; Bug 3813 - Crashes using C++11 threads on Cray systems TestName: uts_threads-par DynamicThreads: 1 RunCmd: %P %A MakeFlags: static_link ; UPCXX_TEST_FLAGS="-Wl,--whole-archive -lpthread -Wl,--no-whole-archive" #KnownFailure: run-crash ; os_darwin && cc_gnu ; issue 49 (uts_{threads,hybrid,omp_ranks}/lpc_barrier crash on (High)Sierra w/ g++) #KnownFailure: run-crash ; os_cnl ; Bug 3813 - Crashes using C++11 threads on Cray systems # ------------------------------------------ # General Tests: TestName: hello_gasnet-par PassExpr: ^Hello from 0 TestName: hello_upcxx-par PassExpr: ^Hello from 0 TestName: version-par TestName: future-par KnownFailure: compile-failure ; cc_pgi ; issue 334: PGI 20.1 crash on test/future and when_all(one_fut).wait() TestName: serialization-par TestName: dist_object-par TestName: dist_when_here-par TestName: team_when_here-par TestName: barrier-par TestName: rpc_barrier-par TestName: rpc_ff_ring-par TestName: rput-par TestName: rput-cover-par TestName: rput_rpc_cx-par AppEnv: UPCXX_WARN_EMPTY_RMA=0 TestName: rput_thread-par TestName: atomics-par # Output scales with number of compute nodes, but we cannot "spell" that in harness.conf FileLimit: $DEFAULT$ * $THREADS$ TestName: collectives-par #KnownFailure: compile-all ; upcxx_tests_cxx2a ; issue 368: Header compile failure with GCC 10.1 and -std=c++2a on non-trivial collectives #KnownFailure: compile-warning ; cc_gnu ; issue 376: warnings from GCC 10.1 in reduce.hpp for boolean reductions TestName: team-create-par TestName: completion-par TestName: local_team-par TestName: memory_kinds-par AppEnv: has_issue_588 ; FI_MR_CUDA_CACHE_MONITOR_ENABLED=0 TestName: vis-par AppEnv: UPCXX_WARN_EMPTY_RMA=0 #KnownFailure: run-crash ; os_darwin && cc_gnu ; issue 127 (Mac+gcc+VIS breaks on lpc operation with seq and par) TestName: vis_stress-par AppEnv: UPCXX_WARN_EMPTY_RMA=0 TestName: alloc-par AppArgs: 10 FileLimit: 1000 + 5000 * $THREADS$ TestName: copy-par FailExpr: WARNING: UPC.. GPU support #KnownFailure: run-all ; cc_pgi ; issue 421: upcxx::copy unsupported on PGI C++ TestName: copy-cover-par MakeFlags: cc_pgi && upcxx_issue_390 && debug ; UPCXX_TEST_FLAGS="-purge-option=-g" AppEnv: has_bug_4151 ; MLX5_SCATTER_TO_CQE=0 AppEnv: has_bug_4384 ; UCX_IB_TX_INLINE_RESP=0 UCX_ZCOPY_THRESH=0 AppEnv: has_bug_4494 ; FI_VERBS_INLINE_SIZE=0 AppEnv: has_bug_4554 ; FI_HMEM_CUDA_USE_GDRCOPY=no #KnownFailure: run-all ; cc_pgi ; issue 421: upcxx::copy unsupported on PGI C++ TestName: memberof-par ProhibitFeature: debug && (cpu_mips64 || cpu_mips64el) # too big -> "relocation truncated to fit: R_MIPS_GOT16" # squash warnings from intentional non-compliant use of offsetof() in upcxx_memberof_unsafe: MakeFlags: cc_subfamily_nvidia && (cc_gnu || cc_clang); UPCXX_TEST_FLAGS="-Xcompiler -Wno-invalid-offsetof" MakeFlags: !cc_subfamily_nvidia && (cc_gnu || cc_clang) ; UPCXX_TEST_FLAGS="-Wno-invalid-offsetof" MakeFlags: cc_pgi && upcxx_issue_390 && debug ; UPCXX_TEST_FLAGS="--diag_suppress1427 -purge-option=-g" MakeFlags: cc_pgi && !(upcxx_issue_390 && debug) ; UPCXX_TEST_FLAGS="--diag_suppress1427" # Cygwin assembler runs out of space without optimization: MakeFlags: os_cygwin && debug ; UPCXX_TEST_FLAGS="-codemode=debug -O1 -Wno-invalid-offsetof" TestName: serialize_large_obj-par TestName: segment_allocator-par TestName: view-par KnownFailure: compile-failure ; cc_intel && os_darwin && nodebug ; issue 559 (Compile error on test/view from Intel compiler on macOS with optional.hpp) TestName: lpc_barrier-par DynamicThreads: 1 #MakeFlags: static_link ; UPCXX_TEST_FLAGS="-Wl,--whole-archive -lpthread -Wl,--no-whole-archive" # bug3813 #KnownFailure: run-crash ; os_darwin && cc_gnu ; issue 49 (uts_{threads,hybrid,omp_ranks}/lpc_barrier crash on (High)Sierra w/ g++) #KnownFailure: run-crash ; os_cnl ; Bug 3813 - Crashes using C++11 threads on Cray systems TestName: lpc-stress-par DynamicThreads: 1 TestName: uts_ranks-par TestName: uts_hybrid-par #KnownFailure: run-crash ; os_darwin && cc_gnu ; issue 49 (uts_{threads,hybrid,omp_ranks}/lpc_barrier crash on (High)Sierra w/ g++) TestName: global_ptr-par # squash erroneous warnings on PGI 19.10(only, issue #284) from upcxx_memberof on non-trivial type (non-trivial default constructor) MakeFlags: cc_pgi ; UPCXX_TEST_FLAGS="--diag_suppress1427" TestName: rpc-ctor-trace-par CompileTimeLimit: $DEFAULT$ * 2 MakeFlags: cc_pgi && upcxx_issue_390 && debug ; UPCXX_TEST_FLAGS="-purge-option=-g" AppEnv: has_bug_4151 ; MLX5_SCATTER_TO_CQE=0 AppEnv: has_bug_4384 ; UCX_IB_TX_INLINE_RESP=0 UCX_ZCOPY_THRESH=0 AppEnv: has_bug_4494 ; FI_VERBS_INLINE_SIZE=0 TestName: verbose-ctor-trace-par FileLimit: 15000 * $THREADS$ TestName: rpc_source_cx-par TestName: lpc-ctor-trace-par TestName: serialize_cvref-par TestName: version-par TestName: bad-alloc-par TestName: bad-segment-alloc-par RequireFeature: upcxx_cuda || upcxx_hip TestName: cuda-context-par RequireFeature: upcxx_cuda MakeFlags: network_ucx ; UPCXX_TEST_FLAGS="-DSKIP_DEVICE_FREE" # bug 4396 MakeFlags: network_ofi && ofi_verbs_provider ; UPCXX_TEST_FLAGS="-DSKIP_DEVICE_FREE" # bug 4504 AppEnv: has_issue_588 ; FI_MR_CUDA_CACHE_MONITOR_ENABLED=0 AppEnv: has_bug_4384 ; UCX_IB_TX_INLINE_RESP=0 UCX_ZCOPY_THRESH=0 TestName: ze_device-par RequireFeature: upcxx_ze TestName: shared-seg-query-par TestName: nodiscard-par MakeFlags: cc_pgi && upcxx_issue_390 && debug ; UPCXX_TEST_FLAGS="-purge-option=-g" #KnownFailure: compile-failure ; cc_pgi && debug ; issue 390 (PGI debug symbol ICE prior to 19.4) TimeLimit: 0 TestName: as_eager-par TestName: sys-header-exclude-par TimeLimit: 0 TestName: optional-par TestName: persona_scope-par # ------------------------------------------ # Benchmarks: TestName: put_flood-par TimeLimit: 2*$DEFAULT$ BenchmarkResult: size=8, kind="lat", how="upcxx".*?bw=([^,]+)(,) AppEnv: network_ucx; fixed_iters=5000 # work-around unbounded-buffering behavior (issue 322) #KnownFailure: run-all ; (cc_clang || cc_gnu) && nodebug ; issue 184 (bench/put_flood crashes on clang-7/opt/Linux) TestName: nebr_exchange-par BenchmarkResult: bw=([^,]+),.*?via="rput"(,) KnownFailure: run-crash ; os_cygwin && cc_clang ; issue 188 (bench/nebr_exchange crash on Cygwin/clang) TestName: gpu_microbenchmark-par DynamicThreads: 2 # want to avoid 2+ppn which increases PCI traffic and actually runs much slower TimeLimit: 2*$DEFAULT$ AppArgs: -t 10 -w 10 -gg -sg -gs -pg # deliberately omit host memory xfers to avoid output line limit AppEnv: UPCXX_SHARED_HEAP_SIZE=1GB AppEnv: has_bug_4151 ; MLX5_SCATTER_TO_CQE=0 AppEnv: has_bug_4384 ; UCX_IB_TX_INLINE_RESP=0 UCX_ZCOPY_THRESH=0 AppEnv: has_bug_4494 ; FI_VERBS_INLINE_SIZE=0 AppEnv: has_bug_4554 ; FI_HMEM_CUDA_USE_GDRCOPY=no BenchmarkResult: message size = 4194304 byte.*?\n\s*Local GPU -> Remote GPU:[^,]+, ([^ ]+) (GB/s) RequireFeature: gasnet_has_par && (upcxx_cuda || upcxx_hip) FileLimit: 128*1024 #KnownFailure: run-all ; cc_pgi ; issue 421: upcxx::copy unsupported on PGI C++ MakeFlags: cc_pgi && upcxx_issue_390 && debug ; UPCXX_TEST_FLAGS="-purge-option=-g" CompileTimeLimit: $DEFAULT$ * 2 TestName: misc_perf-par AppArgs: 1000 BenchmarkResult: upcxx::progress\s*:[^s]*s\s*([^ ]+)\s*(us) MakeFlags: cc_pgi && upcxx_issue_390 && debug ; UPCXX_TEST_FLAGS="-purge-option=-g" TestName: rpc_perf-par AppArgs: 100 10 1048576 BenchmarkResult: 0:\s+1\s+[^s]*s\s+([^ ]+)\s*(us) # ------------------------------------------ # Regression suite: TestName: issue88-par TestName: issue108-par TestName: issue128-par TestName: issue138-par AppEnv: UPCXX_SHARED_HEAP_SIZE=128MB TimeLimit: $DEFAULT$ * 2 MakeFlags: os_cygwin ; UPCXX_TEST_FLAGS="-DMINIMAL -g0 -Wa,-mbig-obj" # issue 278 MakeFlags: (cc_pgi && !(upcxx_issue_390 && debug)) || (!cc_pgi && precious_compiler_license) ; UPCXX_TEST_FLAGS="-DMINIMAL" # issue 278 MakeFlags: cc_nvhpc && cpu_powerpc64le; UPCXX_TEST_FLAGS="-DMINIMAL" # variant on issue 278 MakeFlags: cc_pgi && upcxx_issue_390 && debug ; UPCXX_TEST_FLAGS="-DMINIMAL -purge-option=-g" MakeFlags: cpu_riscv64 ; UPCXX_TEST_FLAGS="-DMINIMAL" # no bug(s). just too slow otherwise #KnownFailure: compile-all ; cc_pgi && debug ; PGI+debug entries ICE on issue138 instantiations ProhibitFeature: cpu_mips64 || cpu_mips64el # even MINIMAL exceeds ABI limits (linker failure) TestName: issue140-par TimeLimit: $DEFAULT$ / 4 #KnownFailure: run-time ; all ; issue 140 (upcxx::discharge() does not discharge remote_cx::as_rpc()) TestName: issue141-par TestName: issue142-par TestName: issue168-par TimeLimit: $DEFAULT$ / 4 # expected to deadlock and time out #KnownFailure: run-all ; ; issue 168 (upcxx::progress_required always return 0 for rpc chain with cx as lpc) TestName: issue170-par TestName: issue185-par TimeLimit: 0 TestName: issue210-par TestName: issue219-par TimeLimit: 0 TestName: issue223-par PassExpr: done. TestName: issue224-par TimeLimit: 0 TestName: issue234-par #KnownFailure: compile-all ; ; issue 234 (Generalized operation completion for barrier_async and broadcast) #KnownFailure: compile-all ; upcxx_tests_cxx2a ; issue 368: Header compile failure with GCC 10.1 and -std=c++2a on non-trivial collectives TestName: issue242-par AppArgs: 100 AppEnv: GASNET_BACKTRACE=0 # skip backtraces for known crash KnownFailure: run-crash ; ; issue 242 (Lack of backpressure in RPC injection leads to obscure memory-exhaustion crashes) KnownFailure: run-all ; os_cygwin ; Cygwin's std::terminate does not behave as expected TestName: issue262-par TestName: issue266-par TestName: issue267-par #KnownFailure: compile-all ; upcxx_tests_cxx2a ; issue 368: Header compile failure with GCC 10.1 and -std=c++2a on non-trivial collectives TestName: issue277-par TestName: issue280-par TestName: issue288-par TestName: issue312-par #KnownFailure: compile-all ; ; issue 312 (dist_id::here() does not compile) TestName: issue323-par TestName: issue333-par TimeLimit: 0 TestName: issue336-par #KnownFailure: run-all ; ; issue 336: Serialization for statically massive types ProhibitFeature: os_cygwin # leaves run-away procs consuming 100% CPU TestName: issue343-par TestName: issue355-par #KnownFailure: compile-all ; ; issue 355: upcxx::view broken with asymmetric deserialization TestName: issue356-par #KnownFailure: compile-all ; ; issue 356: SERIALIZED_{FIELDS,VALUES} incorrectly require public constructors TestName: issue367-par TestName: issue367b-par TestName: issue371-par TestName: issue380-par TestName: issue391-par TestName: issue394-par TestName: issue400-par TestName: issue402-par TestName: issue405-par #KnownFailure: run-all ; cc_pgi ; issue 421: upcxx::copy unsupported on PGI C++ TestName: issue407-par TestName: issue408-par TestName: issue412b-par TimeLimit: 0 TestName: issue413-par TestName: issue419-par TestName: issue421-par #KnownFailure: run-all ; cc_pgi ; issue 421: upcxx::copy unsupported on PGI C++ TestName: issue421b-par #KnownFailure: run-all ; cc_pgi ; issue 421: upcxx::copy unsupported on PGI C++ TestName: issue421c-par TestName: issue427-par TestName: issue427b-par TestName: issue428-par TimeLimit: 0 TestName: issue432-par RequireFeature: upcxx_cuda || upcxx_hip MakeFlags: cc_pgi && upcxx_issue_390 && debug ; UPCXX_TEST_FLAGS="-purge-option=-g" AppEnv: has_bug_4384 ; UCX_IB_TX_INLINE_RESP=0 UCX_ZCOPY_THRESH=0 #KnownFailure: run-all ; cc_pgi ; issue 421: upcxx::copy unsupported on PGI C++ TestName: issue440-par TestName: issue447-par TestName: issue450-par TimeLimit: 0 TestName: issue462-par TestName: issue473-par TestName: issue477-par TestName: issue478-par TestName: issue482-par TestName: issue483-par TestName: issue512-par TestName: issue547-par MakeFlags: !cc_subfamily_nvidia && (cc_clang || cc_gnu) ; UPCXX_TEST_FLAGS="-Wno-self-move" MakeFlags: cc_subfamily_nvidia && (cc_clang || cc_gnu) ; UPCXX_TEST_FLAGS="-Xcompiler -Wno-self-move" TestName: issue552-par TestName: issue609-par TestName: issue613b-par TimeLimit: 0 TestName: spec-issue104-par TestName: spec-issue144b-par TestName: spec-issue144c-par TestName: spec-issue158-par TestName: spec-issue160-par TestName: spec-issue170-par TestName: spec-issue176-par TestName: spec-issue189-par AppEnv: has_issue_588 ; FI_MR_CUDA_CACHE_MONITOR_ENABLED=0 TestName: spec-issue198-par TestName: spec-issue199-par TestName: spec-issue204-par # Spurious warning seen with `-Wall` and GCC 13: KnownFailure: compile-warning ; cc_gnu && !debug; issue 613: Warnings from persona.hpp # ------------------------------------------ # Guide examples: TestName: hello-world-par PassExpr: ^Hello world from TestName: rb1d-par PassExpr: ^Converged at 5590 TestName: rb1d-rpc-par PassExpr: ^Converged at 5590 TestName: rb1d-rpcinit-par PassExpr: ^Converged at 5590 TestName: dmap-test-par TestName: dmap-async-insert-test-par TimeLimit: $DEFAULT$ * 1.5 TestName: dmap-async-find-test-par TimeLimit: $DEFAULT$ * 1.5 TestName: dmap-quiescence-test-par TestName: dmap-atomics-test-par TestName: dmap-conjoined-test-par TestName: dmap-promises-test-par TestName: team_simple-par TestName: team_advanced-par TestName: team_create_sub-par TestName: local-team-par TestName: non-contig-example-par TestName: view-accumulate-par TestName: view-histogram1-par TestName: view-histogram2-par TestName: view-matrix-tasks-par # persona-example spins 11 threads/proc, leading to overcommit, # so turn down the proc count and iteration count TestName: persona-example-par DynamicThreads: 2 AppArgs: 1000 AppEnv: UPCXX_OVERSUBSCRIBED=1 #KnownFailure: run-time ; upcxx_lpc_inbox_locked ; issue 245 (persona-example deadlocks with UPCXX_LPC_INBOX=locked) TestName: persona-example-rputs-par TestName: h-d-par RequireFeature: gasnet_has_par,upcxx_cuda AppEnv: has_bug_4384 ; UCX_IB_TX_INLINE_RESP=0 UCX_ZCOPY_THRESH=0 #KnownFailure: run-all ; cc_pgi ; issue 421: upcxx::copy unsupported on PGI C++ TestName: h-d-remote-par AppEnv: has_bug_4384 ; UCX_IB_TX_INLINE_RESP=0 UCX_ZCOPY_THRESH=0 RequireFeature: gasnet_has_par,upcxx_cuda #KnownFailure: run-all ; cc_pgi ; issue 421: upcxx::copy unsupported on PGI C++ TestName: serial-fields-par TestName: serial-values-par TestName: serial-recursive-par TestName: serial-custom-par TestName: rput-rpc-par # default "fast floating point mode" in recent oneAPI compilers leads to nuisance warnings (two versions): WarningFilter: cc_clang ; '.*?warning: comparison with NaN always evaluates to false in fast floating point modes.*?' WarningFilter: cc_clang ; '.*?warning: explicit comparison with NaN in fast floating point mode.*?' TestName: reduce-complex-minloc-par TestName: broadcast-example-par # ------------------------------------------ # serialization examples TestName: upcxx_serialized_fields-par TestName: upcxx_serialized_values-par TestName: upcxx_serialized_fields_recursive-par TestName: upcxx_serialized_values_recursive-par TestName: upcxx_serialization-par TestName: upcxx_serialization_nested-par TestName: serialize_abstract_base-par TestName: unrolled_list-par # ------------------------------------------ # General examples TestName: compute-pi-par AppArgs: 10000 PassExpr: ^pi estimate: 3.1 TestName: compute-pi-multi-examples-par AppArgs: 10000 TestName: rpc-then-rget-par TestName: team-self-par # ------------------------------------------ # Tutorial examples/exercises: TestName: hello-world-rpc-to-0-par PassExpr: Hello from TestName: jac1d-par TestName: dmap-insert-test-par TestName: dmap-erase-update-test-par TestName: drmap-insert-test-par TestName: pi-no-overlap-par PassExpr: PI estimated to 3 TestName: pi-conjoined-par PassExpr: PI estimated to 3 TestName: pi-no-barrier-par PassExpr: PI estimated to 3 TestName: ex1-par PassExpr: # no convenient way to validate output.txt TestName: ex2-par TestName: ex3-par TestName: ex4-par MakeFlags: UPCXX_TEST_FLAGS="-DFIND_CHECKS" KnownFailure: run-crash ; network_ibv && has_bug_4039 ; Bug 4039 - intermittent ibv crashes in upcxx/ex4 # ------------------------------------------ # upcxx-extras TestName: allocator-example-par TestName: vector_accumulate_example-par TestName: rpc_ff_quiescence-par TestName: padded_device_allocator-example-par RequireFeature: upcxx_cuda || upcxx_hip TestName: laplace2d-par AppArgs: 100 4096 TestName: cannon-par AppArgs: 2048 AppEnv: UPCXX_SHARED_HEAP_SIZE=256MB DynamicThreads: 1, 4, 16 # Cannon alg requires a perfect square rank count BenchmarkResult: Compute:\s*(\S+)\s*(s) ProhibitFeature: missing_cblas || (os_darwin && cc_gnu) # Homebrew gcc cannot parse Apple #KnownFailure: run-all ; cc_pgi ; issue 421: upcxx::copy unsupported on PGI C++ TestName: cannon_cuda-par AppArgs: (_threads == 1) ; 512 # reduce matrix size for single-rank, avoid BAR1 limit on Tesla AppArgs: (_threads > 1) ; 2048 AppEnv: UPCXX_SHARED_HEAP_SIZE=256MB DynamicThreads: 1, 4, 16 # Cannon alg requires a perfect square rank count RequireFeature: upcxx_cuda_compute_30 BenchmarkResult: Compute:\s*(\S+)\s*(s) ProhibitFeature: missing_cblas || missing_cublas || (os_darwin && cc_gnu) # Homebrew gcc cannot parse Apple #KnownFailure: run-match ; (_threads > 4) ; issue 381 (cannon_cuda fails to validate with 16 ranks) #KnownFailure: run-all ; cc_pgi ; issue 421: upcxx::copy unsupported on PGI C++ # ------------------------------------------ # upcxx-extras dist_array TestName: DA-alltoall-par TestName: DA-basic-par TestName: DA-cache-par TestName: DA-fileinput-par TestName: DA-jacobi-par TestName: DA-scatter-par TestName: DA-threads-par # ------------------------------------------ # misc examples TestName: cuda_vecadd-par RequireFeature: upcxx_cuda_compute_30 MakeFlags: nodebug ; CXXFLAGS=-O3 AppEnv: has_bug_4384 ; UCX_IB_TX_INLINE_RESP=0 UCX_ZCOPY_THRESH=0 TestName: hip_vecadd-par RequireFeature: upcxx_hip MakeFlags: nodebug ; CXXFLAGS=-O3 AppEnv: hip_platform_nvidia && has_bug_4384 ; UCX_IB_TX_INLINE_RESP=0 UCX_ZCOPY_THRESH=0 TestName: sycl_vecadd-par RequireFeature: upcxx_ze,sycl MakeFlags: nodebug ; CXXFLAGS=-O3 # backend compiler's warning-supression flags in LDFLAGS can lead to warnings from SYCL linker WarningFilter: '.*?warning: unknown warning option.*?' # ------------------------------------------ # OpenMP interop tests # ------------------------------------------ BEGIN_DEFAULT_CONFIG Flags: Files: DynamicThreads: $DEFAULT$ StaticThreads: 0 ProcPerNode: $DEFAULT$ Pthreads: 0 CompileResult: pass PassExpr: SUCCESS FailExpr: ERROR ExitCode: 0 BuildCmd: make,notrans AppArgs: AppEnv: report_file=- TimeLimit: $DEFAULT$ RequireFeature: gasnet_has_par,upcxx ProhibitFeature: missing_openmp,hack_for_nonupc_test # mark this suite as non-UPC RunCmd: ./launcher -np %N env OMP_NUM_THREADS=4 %P %A MakeFlags: debug ; UPCXX_CODEMODE=debug MakeFlags: nodebug ; UPCXX_CODEMODE=O3 MakeFlags: UPCXX_TEST_FLAGS="-fopenmp" # default is -fopenmp MakeFlags: cc_pgi ; UPCXX_TEST_FLAGS="-mp" MakeFlags: cc_subfamily_nvidia ; UPCXX_TEST_FLAGS="-Xcompiler -fopenmp" MakeFlags: cc_clang && cc_subfamily_intel ; UPCXX_TEST_FLAGS="-qopenmp" SaveOutput: 1 # OpenMP library yields this warning on Cray systems: WarningFilter: all ; '.*?warning: Using .dlopen. in statically linked applications.*?' END_DEFAULT_CONFIG TestName: uts_omp-par DynamicThreads: 1 RunCmd: %P %A AppEnv: OMP_NUM_THREADS=10 #KnownFailure: run-crash ; os_darwin && cc_gnu ; issue 92 (aka issue 49) TestName: uts_omp_ranks-par #KnownFailure: run-crash ; os_darwin && cc_gnu ; issue 49 (uts_{threads,hybrid,omp_ranks}/lpc_barrier crash on (High)Sierra w/ g++) #KnownFailure: run-all ; os_linux && cc_clang ; issue 93 (uts_omp_ranks crash w/ clang on Linux/x86-64) TestName: rput-omp-par TestName: rpc-omp-par # ------------------------------------------ # upcxx-extras : guppie # ------------------------------------------ BEGIN_DEFAULT_CONFIG Flags: Files: DynamicThreads: $DEFAULT$ StaticThreads: 0 ProcPerNode: $DEFAULT$ Pthreads: 0 CompileResult: pass PassExpr: passed FailExpr: ERROR ExitCode: 0 BuildCmd: make,notrans AppArgs: AppEnv: TimeLimit: $DEFAULT$ RequireFeature: gasnet,upcxx ProhibitFeature: hack_for_nonupc_test # mark this suite as non-UPC RunCmd: ./launcher -np %N %P %A # Note "reset" of LDFLAGS avoids problems with those in harness environment MakeFlags: debug ; UPCXX_CODEMODE=debug LDFLAGS= MakeFlags: nodebug ; UPCXX_CODEMODE=O3 LDFLAGS= SaveOutput: 1 BenchmarkResult: rate\s*=\s*(\S+)\s*(Mup/s) AppArgs: -l20 -m1 -h0 END_DEFAULT_CONFIG TestName: guppie-rma-seq AppArgs: -l20 -m1 -h0.10 TestName: guppie-amo-seq TestName: guppie-amo-pipe-seq TestName: guppie-rpc-seq TestName: guppie-rpc_ff-seq TestName: guppie-rma-par RequireFeature: gasnet_has_par,upcxx AppArgs: -l20 -m1 -h0.10 TestName: guppie-amo-par RequireFeature: gasnet_has_par,upcxx TestName: guppie-amo-pipe-par RequireFeature: gasnet_has_par,upcxx TestName: guppie-rpc-par RequireFeature: gasnet_has_par,upcxx TestName: guppie-rpc_ff-par RequireFeature: gasnet_has_par,upcxx # ------------------------------------------ # upcxx-extras : jac3d # ------------------------------------------ BEGIN_DEFAULT_CONFIG Flags: Files: DynamicThreads: $DEFAULT$ StaticThreads: 0 ProcPerNode: $DEFAULT$ Pthreads: 0 CompileResult: pass PassExpr: SUCCESS FailExpr: FAIL ExitCode: 0 BuildCmd: make,notrans AppEnv: TimeLimit: $DEFAULT$ ProhibitFeature: hack_for_nonupc_test # mark this suite as non-UPC RunCmd: ./launcher -np %N %P %A MakeFlags: debug ; UPCXX_CODEMODE=debug OPT=-g MakeFlags: nodebug ; UPCXX_CODEMODE=O3 OPT=-O3 SaveOutput: 1 BenchmarkResult: GFLOPS\s*:\s*([^\n]+)\n(?:.|\n)*?(Gflops) AppArgs: -N 256 -i 1000 END_DEFAULT_CONFIG TestName: jac3d-seq RequireFeature: upcxx_cuda_compute_30 #KnownFailure: run-all ; cc_pgi ; issue 421: upcxx::copy unsupported on PGI C++ TestName: jac3d-par RequireFeature: gasnet_has_par,upcxx_cuda_compute_30 #KnownFailure: run-all ; cc_pgi ; issue 421: upcxx::copy unsupported on PGI C++ # ------------------------------------------ # upcxx-extras : kokkos MonteCarlo # ------------------------------------------ BEGIN_DEFAULT_CONFIG Flags: Files: DynamicThreads: $DEFAULT$ StaticThreads: 0 ProcPerNode: $DEFAULT$ Pthreads: 0 CompileResult: pass PassExpr: pi est = 3.14 FailExpr: ERROR ExitCode: 0 BuildCmd: make,notrans AppEnv: TimeLimit: $DEFAULT$ ProhibitFeature: hack_for_nonupc_test # mark this suite as non-UPC RunCmd: ./launcher -np %N env OMP_NUM_THREADS=4 OMP_PROC_BIND=spread OMP_PLACES=threads %P %A MakeFlags: debug ; UPCXX_CODEMODE=debug MakeFlags: nodebug ; UPCXX_CODEMODE=O3 WarningFilter: all ; '.*?Kokkos_Error\.[co].*?' WarningFilter: cc_clang ; '.*?warning: argument unused during compilation: .--offload-arch.*?' WarningFilter: cc_gnu ; '.*?offsetof applied to non-POD types.*?' RequireFeature: kokkos SaveOutput: 1 END_DEFAULT_CONFIG TestName: kokkos_montecarlo-seq MakeFlags: KOKKOS_DEVICES=Threads AppArgs: 23 --kokkos-num-threads=4 TestName: kokkos_montecarlo-par MakeFlags: KOKKOS_DEVICES=Threads AppArgs: 23 --kokkos-num-threads=4 TestName: kokkos_montecarlo_openmp-seq MakeFlags: KOKKOS_DEVICES=OpenMP AppArgs: 23 ProhibitFeature: missing_openmp TestName: kokkos_montecarlo_openmp-par MakeFlags: KOKKOS_DEVICES=OpenMP AppArgs: 23 ProhibitFeature: missing_openmp TestName: kokkos_montecarlo_cuda-seq AppArgs: 33 --kokkos-disable-warnings MakeFlags: KOKKOS_DEVICES=Cuda RequireFeature: kokkos,upcxx_cuda_compute_30 ProhibitFeature: cc_clang # Makefile.kokkos is broken for nvcc_wrapper around clang TestName: kokkos_montecarlo_cuda-par AppArgs: 33 --kokkos-disable-warnings MakeFlags: KOKKOS_DEVICES=Cuda RequireFeature: kokkos,upcxx_cuda_compute_30 ProhibitFeature: cc_clang # Makefile.kokkos is broken for nvcc_wrapper around clang TestName: kokkos_montecarlo_hip-seq AppArgs: 33 --kokkos-disable-warnings MakeFlags: KOKKOS_DEVICES=Hip RequireFeature: kokkos,upcxx_hip ProhibitFeature: hip_platform_nvidia # Kokkos doesn't know how to handle this case TestName: kokkos_montecarlo_hip-par AppArgs: 33 --kokkos-disable-warnings MakeFlags: KOKKOS_DEVICES=Hip RequireFeature: kokkos,upcxx_hip ProhibitFeature: hip_platform_nvidia # Kokkos doesn't know how to handle this case # ------------------------------------------ # upcxx-extras : kokkos 3d Halo # ------------------------------------------ BEGIN_DEFAULT_CONFIG Flags: Files: DynamicThreads: $DEFAULT$ StaticThreads: 0 ProcPerNode: $DEFAULT$ Pthreads: 0 CompileResult: pass PassExpr: SUCCESS FailExpr: ERROR ExitCode: 0 BuildCmd: make,notrans AppEnv: TimeLimit: $DEFAULT$ ProhibitFeature: hack_for_nonupc_test # mark this suite as non-UPC RunCmd: ./launcher -np %N env OMP_NUM_THREADS=4 OMP_PROC_BIND=spread OMP_PLACES=threads %P %A MakeFlags: debug ; UPCXX_CODEMODE=debug MakeFlags: nodebug ; UPCXX_CODEMODE=O3 WarningFilter: all ; '.*?Kokkos_Error\.[co].*?' WarningFilter: cc_clang ; '.*?warning: argument unused during compilation: .--offload-arch.*?' WarningFilter: cc_gnu ; '.*?offsetof applied to non-POD types.*?' RequireFeature: kokkos SaveOutput: 1 BenchmarkResult: 100 .* Time \(([^\s]+).*(seconds) END_DEFAULT_CONFIG TestName: kokkos_3dhalo-seq MakeFlags: KOKKOS_DEVICES=Threads AppArgs: --kokkos-num-threads=4 TestName: kokkos_3dhalo-par MakeFlags: KOKKOS_DEVICES=Threads AppArgs: --kokkos-num-threads=4 TestName: kokkos_3dhalo_openmp-seq MakeFlags: KOKKOS_DEVICES=OpenMP AppArgs: ProhibitFeature: missing_openmp TestName: kokkos_3dhalo_openmp-par MakeFlags: KOKKOS_DEVICES=OpenMP AppArgs: ProhibitFeature: missing_openmp TestName: kokkos_3dhalo_cuda-seq AppArgs: --kokkos-disable-warnings MakeFlags: KOKKOS_DEVICES=Cuda RequireFeature: kokkos,upcxx_cuda_compute_30 ProhibitFeature: cc_clang # Makefile.kokkos is broken for nvcc_wrapper around clang TestName: kokkos_3dhalo_cuda-par AppArgs: --kokkos-disable-warnings MakeFlags: KOKKOS_DEVICES=Cuda RequireFeature: kokkos,upcxx_cuda_compute_30 ProhibitFeature: cc_clang # Makefile.kokkos is broken for nvcc_wrapper around clang TestName: kokkos_3dhalo_hip-seq AppArgs: --kokkos-disable-warnings MakeFlags: KOKKOS_DEVICES=Hip RequireFeature: kokkos,upcxx_hip ProhibitFeature: hip_platform_nvidia # Kokkos doesn't know how to handle this case TestName: kokkos_3dhalo_hip-par AppArgs: --kokkos-disable-warnings MakeFlags: KOKKOS_DEVICES=Hip RequireFeature: kokkos,upcxx_hip ProhibitFeature: hip_platform_nvidia # Kokkos doesn't know how to handle this case # ------------------------------------------ # upcxx-extras : extend-add # ------------------------------------------ BEGIN_DEFAULT_CONFIG Flags: Files: DynamicThreads: $DEFAULT$ StaticThreads: 0 ProcPerNode: $DEFAULT$ Pthreads: 0 CompileResult: pass PassExpr: SUCCESS FailExpr: FAIL ExitCode: 0 BuildCmd: make,notrans AppEnv: TimeLimit: $DEFAULT$ * 3 ProhibitFeature: hack_for_nonupc_test # mark this suite as non-UPC RunCmd: ./launcher -np %N %P %A # Note "reset" of LDFLAGS avoids problems with those in harness environment MakeFlags: debug ; UPCXX_CODEMODE=debug OPT=-g LDFLAGS= MakeFlags: nodebug ; UPCXX_CODEMODE=O3 OPT="-O3 -DNDEBUG" LDFLAGS= MakeFlags: cc_pgi ; UPCXX_EXTENDADD_EXTRA="-w -Mnoopenmp" SaveOutput: 1 BenchmarkResult: multifrontal_factorization maximum value:\s*([^\s]+)\s*(s) AppEnv: UPCXX_SHARED_HEAP_SIZE=1GB AppArgs: !UPCXX_EXTENDADD_INPUTPATH!/audikw_1/audikw_1_$THREADS$.dmp END_DEFAULT_CONFIG TestName: extend-add_upcxx-seq RequireFeature: upcxx,upcxx_extendadd TestName: extend-add_upcxx-par RequireFeature: gasnet_has_par,upcxx,upcxx_extendadd TestName: extend-add_mpi_p2p-seq RunCmd: ./launcher-mpi -np %N %P %A RequireFeature: upcxx,upcxx_extendadd,gasnet_has_mpi TestName: extend-add_mpi_collective-seq RunCmd: ./launcher-mpi -np %N %P %A RequireFeature: upcxx,upcxx_extendadd,gasnet_has_mpi # ------------------------------------------ # symPACK # ------------------------------------------ BEGIN_DEFAULT_CONFIG Flags: Files: DynamicThreads: $DEFAULT$ StaticThreads: 0 ProcPerNode: $DEFAULT$ Pthreads: 0 CompileResult: pass PassExpr: Norm of residual after factorization FailExpr: FAIL ExitCode: 0 BuildCmd: make,notrans AppEnv: TimeLimit: $DEFAULT$ * 3 ProhibitFeature: hack_for_nonupc_test | missing_fortran # symPACK requires an ABI-compatible Fortran compiler (in UPCXX_FC) RunCmd: !network_udp ; ./launcher-mpi -np %N %P %A RunCmd: network_udp ; ./launcher -np %N %P %A # Note "reset" of LDFLAGS avoids problems with those in harness environment MakeFlags: debug ; UPCXX_CODEMODE=debug SYMPACK_BUILD=-DCMAKE_BUILD_TYPE=Debug LDFLAGS= MakeFlags: nodebug ; UPCXX_CODEMODE=O3 SYMPACK_BUILD=-DCMAKE_BUILD_TYPE=Release LDFLAGS= # MakeFlags setting of `UPCXX_TEST_FLAGS` must deal w/ mutiple issues: # 1. symPACK is not gcc Wall/Wextra-clean # 2. symPACK has shown issues with C++17 and up. So, to deal with testers # passing `-std=c++2a` in `UPCXX_EXTRA_TEST_FLAGS`, we revert to the # default language level explicitly (and unconditionally) MakeFlags: cc_gnu ; UPCXX_TEST_FLAGS="-std=c++11 -Wno-all -Wno-extra" MakeFlags: cc_intel ; UPCXX_TEST_FLAGS="-std=c++14" MakeFlags: !(cc_intel || cc_gnu) ; UPCXX_TEST_FLAGS="-std=c++11" SaveOutput: 1 BenchmarkResult: Factorization time:\s*([^\s]+)\s*(seconds)? AppEnv: UPCXX_SHARED_HEAP_SIZE=2GB AppEnv: network_udp ; GASNET_SPAWNFN=C GASNET_CSPAWN_CMD="./launcher-mpi -np %N %C" AppEnv: os_darwin ; UPCXX_CCS_MAX_SEGMENTS=512 AppArgs: -in sympack-input.rb -ordering MMD -nrhs 1 -fallback terminate -gpu_v WarningFilter: all ; '.*?warning: libgfortran.*?may conflict with libgfortran.*?' WarningFilter: all ; 'CMake Warning.*?\n.*?could not find a (BLAS|LAPACK).*?' # Seen on NERSC Cori w/ CMake 3.22.1 and GCC 11.2.0: WarningFilter: cc_gnu ; '.*?cc1: warning: command-line option .*? is valid for Fortran but not for C' # Seen on macOS w/ CMake 3.27.4 and GCC 13.1.0 WarningFilter: cc_gnu && os_darwin ; '.*?f951: Warning: command-line option .*? is valid for C.*? but not for Fortran' # Seen with AMD and Cray compilers (both llvm-based) WarningFilter: cc_clang ; '.*?warning: loop not unrolled.*?' END_DEFAULT_CONFIG TestName: _sympack RequireFeature: upcxx,upcxx_sympack TimeLimit: 0 TestName: sympack-seq RequireFeature: upcxx,upcxx_sympack CompileTimeLimit: $DEFAULT$ * 2 TestName: sympack-par RequireFeature: gasnet_has_par,upcxx,upcxx_sympack CompileTimeLimit: $DEFAULT$ * 2 TestName: sympack2D-seq RequireFeature: upcxx,upcxx_sympack CompileTimeLimit: $DEFAULT$ * 2 TestName: sympack2D-par RequireFeature: gasnet_has_par,upcxx,upcxx_sympack CompileTimeLimit: $DEFAULT$ * 2 TestName: sympack2D_cuda-seq RequireFeature: upcxx,upcxx_sympack,upcxx_cuda_compute_30 CompileTimeLimit: $DEFAULT$ * 2 #AppEnv: SLURM_GPUS_PER_TASK=1 TestName: sympack2D_cuda-par RequireFeature: gasnet_has_par,upcxx,upcxx_sympack,upcxx_cuda_compute_30 CompileTimeLimit: $DEFAULT$ * 2 #AppEnv: SLURM_GPUS_PER_TASK=1 # ------------------------------------------ # UPC interoperability # ------------------------------------------ BEGIN_DEFAULT_CONFIG Flags: Files: DynamicThreads: $DEFAULT$ StaticThreads: 0 ProcPerNode: $DEFAULT$ Pthreads: 0 CompileResult: pass PassExpr: SUCCESS FailExpr: ERROR ExitCode: 0 BuildCmd: make,notrans AppArgs: AppEnv: GASNET_MAX_SEGSIZE=64MB UPC_SHARED_HEAP_SIZE=64MB UPCXX_SHARED_HEAP_SIZE=32MB UPCXX_WARN_UPC=0 TimeLimit: $DEFAULT$ RequireFeature: gasnet,upcxx,runtime_upcr ProhibitFeature: hack_for_nonupc_test # mark this suite as non-UPC RunCmd: ./launcher -np %N %P %A MakeFlags: debug ; UPCXX_CODEMODE=debug MakeFlags: nodebug ; UPCXX_CODEMODE=O3 SaveOutput: 1 END_DEFAULT_CONFIG TestName: upc-main_upc-seq TestName: upc-main_upcxx-seq TestName: upc-alloc-seq AppArgs: 10 32 FileLimit: 1200 + 2000 * $THREADS$ TestName: upc-arrval_upc-seq TestName: upc-arrval_upcxx-seq # PAR UPC interop requires upcr/configure --enable-uses-threads and harness -add_feature=uses_threads_support TestName: upc-main_upc-par RequireFeature: gasnet_has_par,upcxx,uses_threads_support TestName: upc-main_upcxx-par RequireFeature: gasnet_has_par,upcxx,uses_threads_support TestName: upc-alloc-par RequireFeature: gasnet_has_par,upcxx,uses_threads_support AppArgs: 10 32 FileLimit: 1200 + 2000 * $THREADS$ TestName: upc-arrval_upc-par RequireFeature: gasnet_has_par,upcxx,uses_threads_support TestName: upc-arrval_upcxx-par RequireFeature: gasnet_has_par,upcxx,uses_threads_support # upcc -pthreads tests, require PAR UPC++ but not -uses-threads # Note that AppEnv appends, overriding the GASNET_MAX_SEGSIZE given above TestName: upc-pth_main_upc-par RequireFeature: pthread_support,upcxx,runtime_upcr AppEnv: GASNET_MAX_SEGSIZE=128MB TestName: upc-pth_arrval_upc-par RequireFeature: pthread_support,upcxx,runtime_upcr AppEnv: GASNET_MAX_SEGSIZE=128MB # ------------------------------------------ # CCS SEQ Tests # ------------------------------------------ BEGIN_DEFAULT_CONFIG Flags: Files: DynamicThreads: $DEFAULT$ StaticThreads: 0 ProcPerNode: $DEFAULT$ Pthreads: 0 CompileResult: pass PassExpr: SUCCESS FailExpr: ERROR ExitCode: 0 BuildCmd: make,notrans AppArgs: TimeLimit: $DEFAULT$ RequireFeature: gasnet && upcxx && network_udp && (os_linux || os_darwin) ProhibitFeature: upcxx_force_legacy_relocations,hack_for_nonupc_test RunCmd: bash -c "./launcher -network udp -np %N $( %P.runcmd %A )" MakeFlags: debug ; UPCXX_CODEMODE=debug MakeFlags: nodebug ; UPCXX_CODEMODE=O3 MakeFlags: have_fpic; UPCXX_LIB_FPIC=1 SaveOutput: 1 END_DEFAULT_CONFIG TestName: ccs-inlib-seq RequireFeature: have_fpic && gasnet_has_par && upcxx && network_udp && (os_linux || os_darwin) FileLimit: 150000 TestName: ccs-asymmetric1-seq TestName: ccs-asymmetric2-seq TestName: ccs-dynamic-dynupcxx-seq RequireFeature: have_fpic && gasnet && upcxx && network_udp && (os_linux || os_darwin) FileLimit: 150000 TestName: ccs-dynamic-seq RequireFeature: have_fpic && gasnet && upcxx && network_udp && (os_linux || os_darwin) FileLimit: 150000 TestName: ccs-python-seq RequireFeature: have_fpic && have_python_headers && gasnet && upcxx && network_udp && (os_linux || os_darwin) FileLimit: 200000 # ------------------------------------------ # CCS PAR Tests # ------------------------------------------ BEGIN_DEFAULT_CONFIG Flags: Files: DynamicThreads: $DEFAULT$ StaticThreads: 0 ProcPerNode: $DEFAULT$ Pthreads: 0 CompileResult: pass PassExpr: SUCCESS FailExpr: ERROR ExitCode: 0 BuildCmd: make,notrans AppArgs: TimeLimit: $DEFAULT$ RequireFeature: gasnet_has_par && upcxx && network_udp && (os_linux || os_darwin) ProhibitFeature: upcxx_force_legacy_relocations,hack_for_nonupc_test RunCmd: bash -c "./launcher -network udp -np %N $( %P.runcmd %A )" MakeFlags: debug ; UPCXX_CODEMODE=debug MakeFlags: nodebug ; UPCXX_CODEMODE=O3 MakeFlags: have_fpic; UPCXX_LIB_FPIC=1 SaveOutput: 1 END_DEFAULT_CONFIG TestName: ccs-inlib-par RequireFeature: have_fpic && gasnet_has_par && upcxx && network_udp && (os_linux || os_darwin) FileLimit: 150000 TestName: ccs-asymmetric1-par TestName: ccs-asymmetric2-par TestName: ccs-dynamic-dynupcxx-par RequireFeature: have_fpic && gasnet_has_par && upcxx && network_udp && (os_linux || os_darwin) FileLimit: 150000 TestName: ccs-dynamic-par RequireFeature: have_fpic && gasnet_has_par && upcxx && network_udp && (os_linux || os_darwin) FileLimit: 150000 TestName: ccs-python-par RequireFeature: have_fpic && have_python_headers && gasnet_has_par && upcxx && network_udp && (os_linux || os_darwin) FileLimit: 200000