# This suite is independent of UPC compiler: KnownFailureAnySpec # ------------------------------------------ # Single-threaded tests # ------------------------------------------ BEGIN_DEFAULT_CONFIG Flags: Files: DynamicThreads: $DEFAULT$ StaticThreads: 0 ProcPerNode: 1 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$ 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 TestName: cmake-seq CompileTimeLimit: $DEFAULT$ * 2 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: barrier-seq TestName: rpc_barrier-seq TestName: rpc_ff_ring-seq TestName: rput-seq TestName: rput-cover-seq TestName: rput_rpc_cx-seq 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: completion-seq TestName: local_team-seq TestName: memory_kinds-seq TestName: uts_ranks-seq TestName: vis-seq #KnownFailure: run-crash ; os_darwin && cc_gnu ; issue 127 (Mac+gcc+VIS breaks on lpc operation with seq and par) TestName: vis_stress-seq TestName: alloc-seq AppArgs: 10 FileLimit: 100 + 2200 * $THREADS$ TestName: copy-seq FailExpr: WARNING: UPC.. CUDA support #KnownFailure: run-all ; cc_pgi ; issue 421: upcxx::copy unsupported on PGI C++ TestName: copy-cover-seq # **TEMPORARY** # The following environment settings are needed avoid triggering # Bug 4148 - ibv/GDR completion issues with multiple communication paths # Note this relies on mlx5_0 being a valid/desirable HCA port AppEnv: network_ibv && upcxx_cuda && has_bug_4148; GASNET_IBV_PORTS=mlx5_0 GASNET_SUPERNODE_MAXSIZE=1 # Similar bug in GDR Puts breaks source completion and this test notices MakeFlags: network_ibv && upcxx_cuda && has_bug_4148 ; UPCXX_TEST_FLAGS="-DSKIP_KILL" #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" TestName: serialize_large_obj-seq TestName: segment_allocator-seq TestName: view-seq MakeFlags: UPCXX_TESTMODE=make 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 MakeFlags: cc_pgi && upcxx_issue_390 && debug ; UPCXX_TEST_FLAGS="-purge-option=-g" TestName: verbose-ctor-trace-seq TestName: rpc_source_cx-seq TestName: lpc-ctor-trace-seq TestName: serialize_cvref-seq TestName: version-seq TestName: bad-alloc-seq TestName: bad-segment-alloc-seq RequireFeature: upcxx_cuda 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 # ------------------------------------------ # 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: cuda_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 BenchmarkResult: message size = 4194304 byte.*?\n\s*Local GPU -> Remote GPU:[^,]+, ([^ ]+) (GB/s) RequireFeature: upcxx_cuda FileLimit: 128*1024 #KnownFailure: run-all ; cc_pgi ; issue 421: upcxx::copy unsupported on PGI C++ TestName: misc_perf-seq 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 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_pgi && upcxx_issue_390 && debug ; UPCXX_TEST_FLAGS="-DMINIMAL -purge-option=-g" #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) 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: 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: issue412-seq TestName: issue412b-seq 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: spec-issue104-seq TestName: spec-issue144b-seq TestName: spec-issue144c-seq TestName: spec-issue158-seq TestName: spec-issue160-seq TestName: spec-issue170-seq # ------------------------------------------ # Guide examples: TestName: hello-world-seq PassExpr: ^Hello world from TestName: compute-pi-seq AppArgs: 10000 PassExpr: ^pi estimate: 3.1 TestName: compute-pi-multi-examples-seq AppArgs: 10000 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: non-contig-example-seq TestName: view-accumulate-seq TestName: view-histogram1-seq TestName: view-histogram2-seq TestName: h-d-seq FailExpr: Failure PassExpr: Success RequireFeature: upcxx_cuda #KnownFailure: run-all ; cc_pgi ; issue 421: upcxx::copy unsupported on PGI C++ TestName: h-d-remote-seq FailExpr: Failure PassExpr: Success RequireFeature: upcxx_cuda #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 # ------------------------------------------ # 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 # ------------------------------------------ # 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_cuda_allocator-example-seq RequireFeature: upcxx_cuda 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 #KnownFailure: run-all ; cc_pgi ; issue 421: upcxx::copy unsupported on PGI C++ # ------------------------------------------ # Multi-threaded tests # ------------------------------------------ BEGIN_DEFAULT_CONFIG Flags: Files: DynamicThreads: $DEFAULT$ StaticThreads: 0 ProcPerNode: 1 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 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: barrier-par TestName: rpc_barrier-par TestName: rpc_ff_ring-par TestName: rput-par TestName: rput-cover-par TestName: rput_rpc_cx-par 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: completion-par TestName: local_team-par TestName: memory_kinds-par TestName: vis-par #KnownFailure: run-crash ; os_darwin && cc_gnu ; issue 127 (Mac+gcc+VIS breaks on lpc operation with seq and par) TestName: vis_stress-par TestName: alloc-par AppArgs: 10 FileLimit: 100 + 2200 * $THREADS$ TestName: copy-par FailExpr: WARNING: UPC.. CUDA support #KnownFailure: run-all ; cc_pgi ; issue 421: upcxx::copy unsupported on PGI C++ TestName: copy-cover-par # **TEMPORARY** # The following environment settings are needed avoid triggering # Bug 4148 - ibv/GDR completion issues with multiple communication paths # Note this relies on mlx5_0 being a valid/desirable HCA port AppEnv: network_ibv && upcxx_cuda && has_bug_4148; GASNET_IBV_PORTS=mlx5_0 GASNET_SUPERNODE_MAXSIZE=1 # Similar bug in GDR Puts breaks source completion and this test notices MakeFlags: network_ibv && upcxx_cuda && has_bug_4148 ; UPCXX_TEST_FLAGS="-DSKIP_KILL" #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" TestName: serialize_large_obj-par TestName: segment_allocator-par TestName: view-par 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 MakeFlags: cc_pgi && upcxx_issue_390 && debug ; UPCXX_TEST_FLAGS="-purge-option=-g" TestName: verbose-ctor-trace-par 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 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 # ------------------------------------------ # 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: cuda_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 BenchmarkResult: message size = 4194304 byte.*?\n\s*Local GPU -> Remote GPU:[^,]+, ([^ ]+) (GB/s) RequireFeature: gasnet_has_par,upcxx_cuda FileLimit: 128*1024 #KnownFailure: run-all ; cc_pgi ; issue 421: upcxx::copy unsupported on PGI C++ TestName: misc_perf-par 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 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_pgi && upcxx_issue_390 && debug ; UPCXX_TEST_FLAGS="-DMINIMAL -purge-option=-g" #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) 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: 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: issue412-par TestName: issue412b-par 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 #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: spec-issue104-par TestName: spec-issue144b-par TestName: spec-issue144c-par TestName: spec-issue158-par TestName: spec-issue160-par TestName: spec-issue170-par # ------------------------------------------ # Guide examples: TestName: hello-world-par PassExpr: ^Hello world from TestName: compute-pi-par AppArgs: 10000 PassExpr: ^pi estimate: 3.1 TestName: compute-pi-multi-examples-par AppArgs: 10000 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: 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 FailExpr: Failure PassExpr: Success RequireFeature: gasnet_has_par,upcxx_cuda #KnownFailure: run-all ; cc_pgi ; issue 421: upcxx::copy unsupported on PGI C++ TestName: h-d-remote-par FailExpr: Failure PassExpr: Success 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 # ------------------------------------------ # 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 # ------------------------------------------ # 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_cuda_allocator-example-par RequireFeature: upcxx_cuda 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: gasnet_has_par,upcxx_cuda_compute_30 MakeFlags: nodebug ; CXXFLAGS=-O3 #KnownFailure: run-all ; cc_pgi ; issue 421: upcxx::copy unsupported on PGI C++ # ------------------------------------------ # OpenMP interop tests # ------------------------------------------ BEGIN_DEFAULT_CONFIG Flags: Files: DynamicThreads: $DEFAULT$ StaticThreads: 0 ProcPerNode: 1 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 %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" AppEnv: OMP_NUM_THREADS=4 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 # ------------------------------------------ # upcxx-extras : guppie # ------------------------------------------ BEGIN_DEFAULT_CONFIG Flags: Files: DynamicThreads: $DEFAULT$ StaticThreads: 0 ProcPerNode: 1 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: 1 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 : extend-add # ------------------------------------------ BEGIN_DEFAULT_CONFIG Flags: Files: DynamicThreads: $DEFAULT$ StaticThreads: 0 ProcPerNode: 1 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: 1 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: cc_gnu ; UPCXX_TEST_FLAGS="-Wno-all -Wno-extra" # symPACK is not gcc Wall/Wextra-clean SaveOutput: 1 BenchmarkResult: Factorization time:\s*([^\s]+) AppEnv: UPCXX_SHARED_HEAP_SIZE=1GB AppEnv: network_udp ; GASNET_SPAWNFN=C GASNET_CSPAWN_CMD="./launcher-mpi -np %N %C" AppArgs: -in nasa2146.rb -ordering MMD -nrhs 1 WarningFilter: all ; '.*?warning: libgfortran.*?may conflict with libgfortran.*?' WarningFilter: all ; 'CMake Warning.*?\n.*?could not find a (BLAS|LAPACK).*?' 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 # ------------------------------------------ # UPC interoperability # ------------------------------------------ BEGIN_DEFAULT_CONFIG Flags: Files: DynamicThreads: $DEFAULT$ StaticThreads: 0 ProcPerNode: 1 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 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 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 AppEnv: GASNET_MAX_SEGSIZE=128MB TestName: upc-pth_arrval_upc-par RequireFeature: pthread_support,upcxx AppEnv: GASNET_MAX_SEGSIZE=128MB