{"id":45292124,"url":"https://github.com/sstsimulator/ember","last_synced_at":"2026-02-21T03:24:26.411Z","repository":{"id":54826340,"uuid":"108058461","full_name":"sstsimulator/ember","owner":"sstsimulator","description":"Ember Communication Patterns","archived":false,"fork":false,"pushed_at":"2024-07-17T15:49:12.000Z","size":86,"stargazers_count":11,"open_issues_count":1,"forks_count":7,"subscribers_count":19,"default_branch":"master","last_synced_at":"2025-06-18T22:34:34.245Z","etag":null,"topics":["benchmarks","communication","motifs","mpi","openshmem","patterns","shmem","simulation","snl-mini-apps"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sstsimulator.png","metadata":{"files":{"readme":"README.MPI.halo3d","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-10-24T00:54:31.000Z","updated_at":"2025-03-09T03:12:38.000Z","dependencies_parsed_at":"2022-08-14T04:00:52.150Z","dependency_job_id":null,"html_url":"https://github.com/sstsimulator/ember","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/sstsimulator/ember","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sstsimulator%2Fember","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sstsimulator%2Fember/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sstsimulator%2Fember/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sstsimulator%2Fember/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sstsimulator","download_url":"https://codeload.github.com/sstsimulator/ember/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sstsimulator%2Fember/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29672703,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T03:11:15.450Z","status":"ssl_error","status_checked_at":"2026-02-21T03:10:34.920Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["benchmarks","communication","motifs","mpi","openshmem","patterns","shmem","simulation","snl-mini-apps"],"created_at":"2026-02-21T03:24:25.856Z","updated_at":"2026-02-21T03:24:26.400Z","avatar_url":"https://github.com/sstsimulator.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"Communication Motif: Halo3D\n\nDescription:\n\nNearest neighbor communications are *very* common in scalable DOE\napplications. In this pattern, each MPI rank communications with ranks\nthat are adjacent to it in each Cartesian dimension. The \"halo\"\nexchanged is the data on each face. The Halo3D pattern included in Ember\nis the simplest representation of this communication approach and\nrepresents codes which are typically structured (i.e. have well defined\nproblem dimensions and that are regular).\n\nIn most DOE implementations (although not all) of Halo3D, an\nMPI_Allreduce operation is executed every n iterations (in some cases\nn=1) which executes either a sum, min or max over the global problem\ndomain. This is *not* included in the Ember implementation so we have\nbroad applicability.\n\n\nParameters for the Halo3D Motif:\n\nmpirun ./halo3d \\\n\t-nx \u003cLocal Domain Size in X-Dimension\u003e \\\n\t-ny \u003cLocal Domain Size in Y-Dimension\u003e \\\n\t-nz \u003cLocal Domain Size in Z-Dimension\u003e \\\n\t-pex \u003cProcessors in X-Dimension\u003e \\\n\t-pey \u003cProcessors in Y-Dimension\u003e \\\n\t-pez \u003cProcessors in Z-Dimension\u003e\n\t-iterations \u003cNumber of Iterations to Execute, default is 1\u003e \\\n\t-vars \u003cNumber of variables in each grid cell\u003e \\\n\t-sleep \u003cNumber of nanoseconds to sleep/compute for\u003e\n\n\nExample: 256 rank run with a local (per rank) data grid of 20x20x20\n\nmpirun -n 256 ./halo3d \\\n\t-nx 20 \\\n\t-ny 20 \\\n\t-nz 20 \\\n\t-pex 8 \\\n\t-pey 8 \\\n\t-pez 4 \\\n\t-iterations 100 \\\n\t-vars 8 \\\n\t-sleep 2000\n\nOutput:\n\nExample:\n\n#                 Time KBytesXchng/Rank-Max            MB/S/Rank\n              0.013865             150.0000           10818.6126\n\nWhen run the motif will complete reporting the time taken, the number of\nKB send/received by a rank in the middle of the processor grid (ranks\naround the edge will have lower communication volume because on some\nfaces they have no neighbors). A benchmarked bandwidth is reported for\nthe rank in the middle of the processor grid.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsstsimulator%2Fember","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsstsimulator%2Fember","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsstsimulator%2Fember/lists"}