[package] name = "lamellar" version = "0.7.0" authors = ["Ryan D. Friese ", "Roberto Gioiosa ", "Joseph Cottam ","Greg Roek ","Erdal Mutlu "] edition = "2021" description = "Lamellar is an asynchronous tasking runtime for HPC systems developed in RUST." readme = "README.md" repository = "https://github.com/pnnl/lamellar-runtime" homepage = "https://github.com/pnnl/lamellar-runtime" license-file = "LICENSE" keywords = ["hpc","runtime","pgas","distributed","asynchronous"] categories = ["asynchronous","concurrency", "network-programming","science"] [dependencies] lamellar-impl = { version = "0.7.0", path = "impl" } rofisys = { version ="0.4", optional = true } #rofisys = {git = "https://github.com/pnnl/rofi-sys.git", branch = "master", optional = true} inventory = "0.3" serde = { version = "1.0.147", features = ["derive"] } serde_bytes = "0.11.7" serde_with = "3.0.0" bincode = "1.3.3" anyhow = "1.0.66" futures-util = "0.3.30" pin-project = "1.1.4" pin-weak = "1.1.0" lazy_static = "1.4.0" crossbeam = "0.8.2" rand = "0.8.5" parking_lot = {version = "0.12.1", features = ["arc_lock", "send_guard", "serde"] } indexmap = "1.9.1" #lamellar_alloc core_affinity = "0.5.10" async-task = "4.3.0" async-trait = "0.1.58" async-std = "1.12.0" async-recursion = "1.0.0" async-lock = "2.8.0" enum_dispatch = "0.3.8" memoffset = "0.7.1" shared_memory = "0.12.4" paste = "1.0.9" newtype_derive = "0.1.6" custom_derive = "0.1.7" glob = "0.3.0" thread_local = "1.1.4" tokio = { version = "1.35.1", features = ["full"] , optional = true} libc = { version = "0.2.137", optional = true } async-global-executor = "2.4.1" envy = "0.4.2" [dev-dependencies] trybuild = "1.0.71" matrixmultiply = "0.3.2" rayon = "1.1" hostname = "0.3" nix = "0.23" assert_cmd = "2.0.4" serial_test = "0.6.0" tracing-subscriber = "0.3" #packed_simd = { version = "0.3.4", package = "packed_simd_2" } #uncomment if using nightly tool chain and want to run the am_flops example [workspace] members = ["impl"] # Set the settings for build scripts and proc-macros. [profile.dev.build-override] opt-level = 3 #features are strictly additive.... can't have mutual exclusitivity [features] enable-rofi=["rofi","rofisys", "libc"] enable-rofi-shared=["rofi","rofisys/shared","libc"] rofi=[] tokio-executor=["tokio"] slurm-test=[] disable-runtime-warnings=[] runtime-warnings-panic=[] default=[] [profile.release] opt-level=3 lto=false codegen-units=1 debug = true [lib] doctest = false name="lamellar" path="src/lib.rs" #[[test]] #name= "tests" #path = "tests/progress.rs" ##------tests-------## [[example]] name = "put_test" path = "tests/array/rdma/put_test.rs" [[example]] name = "blocking_get_test" path = "tests/array/rdma/blocking_get_test.rs" [[example]] name = "get_test" path = "tests/array/rdma/get_test.rs" [[example]] name = "add_test" path = "tests/array/arithmetic_ops/add_test.rs" [[example]] name = "fetch_add_test" path = "tests/array/arithmetic_ops/fetch_add_test.rs" [[example]] name = "sub_test" path = "tests/array/arithmetic_ops/sub_test.rs" [[example]] name = "fetch_sub_test" path = "tests/array/arithmetic_ops/fetch_sub_test.rs" [[example]] name = "mul_test" path = "tests/array/arithmetic_ops/mul_test.rs" [[example]] name = "fetch_mul_test" path = "tests/array/arithmetic_ops/fetch_mul_test.rs" [[example]] name = "div_test" path = "tests/array/arithmetic_ops/div_test.rs" [[example]] name = "fetch_div_test" path = "tests/array/arithmetic_ops/fetch_div_test.rs" [[example]] name = "and_test" path = "tests/array/bitwise_ops/and_test.rs" [[example]] name = "fetch_and_test" path = "tests/array/bitwise_ops/fetch_and_test.rs" [[example]] name = "or_test" path = "tests/array/bitwise_ops/or_test.rs" [[example]] name = "fetch_or_test" path = "tests/array/bitwise_ops/fetch_or_test.rs" [[example]] name = "load_store_test" path = "tests/array/atomic_ops/load_store_test.rs" [[example]] name = "swap_test" path = "tests/array/atomic_ops/swap_test.rs" [[example]] name = "compare_exchange_test" path = "tests/array/atomic_ops/compare_exchange_test.rs" ##------------ Bandwidth Examples -----------------## [[example]] name="am_bw" path="examples/bandwidths/am_bw.rs" [[example]] name="task_group_am_bw" path="examples/bandwidths/task_group_am_bw.rs" [[example]] name="task_group_futures_am_bw" path="examples/bandwidths/task_group_futures_am_bw.rs" [[example]] name="task_group_typed_futures_am_bw" path="examples/bandwidths/task_group_typed_futures_am_bw.rs" [[example]] name="am_bw_get" path="examples/bandwidths/am_bw_get.rs" [[example]] name="am_group_bw_get" path="examples/bandwidths/am_group_bw_get.rs" [[example]] name="get_bw" path="examples/bandwidths/get_bw.rs" [[example]] name="put_bw" path="examples/bandwidths/put_bw.rs" [[example]] name="unsafe_array_put_bw" path="examples/bandwidths/unsafe_array_put_bw.rs" [[example]] name="unsafe_array_put_unchecked_bw" path="examples/bandwidths/unsafe_array_put_unchecked_bw.rs" [[example]] name="atomic_array_put_bw" path="examples/bandwidths/atomic_array_put_bw.rs" [[example]] name="local_lock_atomic_array_put_bw" path="examples/bandwidths/local_lock_atomic_array_put_bw.rs" [[example]] name="global_lock_atomic_array_put_bw" path="examples/bandwidths/global_lock_atomic_array_put_bw.rs" [[example]] name="unsafe_array_get_bw" path="examples/bandwidths/unsafe_array_get_bw.rs" [[example]] name="unsafe_array_store_bw" path="examples/bandwidths/unsafe_array_store_bw.rs" [[example]] name="unsafe_array_get_unchecked_bw" path="examples/bandwidths/unsafe_array_get_unchecked_bw.rs" [[example]] name="atomic_array_get_bw" path="examples/bandwidths/atomic_array_get_bw.rs" [[example]] name="local_lock_atomic_array_get_bw" path="examples/bandwidths/local_lock_atomic_array_get_bw.rs" [[example]] name="global_lock_atomic_array_get_bw" path="examples/bandwidths/global_lock_atomic_array_get_bw.rs" [[example]] name="readonly_array_get_bw" path="examples/bandwidths/readonly_array_get_bw.rs" [[example]] name="readonly_array_get_unchecked_bw" path="examples/bandwidths/readonly_array_get_unchecked_bw.rs" ##------------ Active Message Examples -----------------## [[example]] name="am_no_return" path="examples/active_message_examples/am_no_return.rs" [[example]] name="am_return_usize" path="examples/active_message_examples/am_return_usize.rs" [[example]] name="am_return_ordered" path="examples/active_message_examples/am_return_ordered.rs" [[example]] name="am_return_am" path="examples/active_message_examples/am_return_am.rs" [[example]] name="am_return_am_usize" path="examples/active_message_examples/am_return_am_usize.rs" [[example]] name="async_comparison" path="examples/active_message_examples/async_comparison.rs" [[example]] name="recursive_am" path="examples/active_message_examples/recursive_am.rs" [[example]] name="am_batch_tests" path="examples/active_message_examples/am_batch_tests.rs" [[example]] name="am_local" path="examples/active_message_examples/am_local.rs" [[example]] name="am_local_memregions" path="examples/active_message_examples/am_local_memregions.rs" ##---------------Array Examples -------------------## [[example]] name="dist_array_reduce" path="examples/array_examples/dist_array_reduce.rs" [[example]] name="array_am" path="examples/array_examples/array_am.rs" [[example]] name="array_put_get" path="examples/array_examples/array_put_get.rs" [[example]] name="onesided_iteration" path="examples/array_examples/onesided_iteration.rs" [[example]] name="local_iteration" path="examples/array_examples/local_iteration.rs" [[example]] name="distributed_iteration" path="examples/array_examples/distributed_iteration.rs" [[example]] name="array_consumer_schedules" path="examples/array_examples/array_consumer_schedules.rs" #[[example]] #name="local_only_array" #path="examples/array_examples/local_only_array.rs" [[example]] name="generic_array" path="examples/array_examples/generic_array.rs" [[example]] name="array_batch_add" path="examples/array_examples/array_batch_add.rs" [[example]] name="array_ops" path="examples/array_examples/array_ops.rs" [[example]] name="atomic_compare_exchange" path="examples/array_examples/atomic_compare_exchange.rs" [[example]] name="array_first_last_global_indices" path="examples/array_examples/array_first_last_global_indices.rs" [[example]] name="global_lock_array" path="examples/array_examples/global_lock_array.rs" #[[example]] #name="2d_array" #path="examples/array_examples/2d_array.rs" [[example]] name="histo" path="examples/array_examples/histo.rs" #[[example]] #name="single_pe_array" #path="examples/array_examples/single_pe_array.rs" ##------------ RDMA Examples -----------------## [[example]] name="rdma_put" path="examples/rdma_examples/rdma_put.rs" [[example]] name="rdma_get" path="examples/rdma_examples/rdma_get.rs" [[example]] name="rdma_am" path="examples/rdma_examples/rdma_am.rs" ##------------ Team Examples -----------------## [[example]] name="team_am" path="examples/team_examples/team_am.rs" [[example]] name="custom_team_arch" path="examples/team_examples/custom_team_arch.rs" [[example]] name="random_team" path="examples/team_examples/random_team.rs" ##------------ Kernel Examples -----------------## [[example]] name="am_flops" path="examples/kernels/am_flops.rs" [[example]] name="dft_proxy" path="examples/kernels/dft_proxy.rs" [[example]] name="am_gemm" path="examples/kernels/am_gemm.rs" [[example]] name="cached_am_gemm" path="examples/kernels/cached_am_gemm.rs" [[example]] name="serial_array_gemm" path="examples/kernels/serial_array_gemm.rs" [[example]] name="parallel_array_gemm" path="examples/kernels/parallel_array_gemm.rs" [[example]] name="parallel_blocked_array_gemm" path="examples/kernels/parallel_blocked_array_gemm.rs" [[example]] name="safe_parallel_blocked_array_gemm" path="examples/kernels/safe_parallel_blocked_array_gemm.rs" #[[example]] #name="safe_parallel_blocked_array_gemm_2" #path="examples/kernels/safe_parallel_blocked_array_gemm_2.rs" ##------------ Miscellaneous Examples -----------------## [[example]] name="simple_ptp" path="examples/misc/simple_ptp.rs" [[example]] name="lamellar_env" path="examples/misc/lamellar_env.rs" [[example]] name="ping_pong" path="examples/misc/ping_pong.rs" [[example]] name="dist_hashmap" path="examples/misc/dist_hashmap.rs" ##------------ Darc examples ------------------## [[example]] name="darc" path="examples/darc_examples/darc.rs" [[example]] name="stress_test" path="examples/darc_examples/stress_test.rs" [[example]] name="string_darc" path="examples/darc_examples/string_darc.rs" ##------------ Hello Worlds examples ------------------## [[example]] name="hello_world_am" path="examples/hello_world/hello_world_am.rs" [[example]] name="hello_world_array" path="examples/hello_world/hello_world_array.rs" [[example]] name="hello_world_array_iteration" path="examples/hello_world/hello_world_array_iteration.rs"