{"id":32139597,"url":"https://github.com/ecp-copa/examinimd","last_synced_at":"2026-02-19T07:01:32.339Z","repository":{"id":29397889,"uuid":"82230582","full_name":"ECP-copa/ExaMiniMD","owner":"ECP-copa","description":"Molecular dynamics proxy application based on Kokkos","archived":false,"fork":false,"pushed_at":"2024-07-11T20:57:57.000Z","size":1016,"stargazers_count":33,"open_issues_count":9,"forks_count":21,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-10-21T06:05:15.740Z","etag":null,"topics":["kokkos","lammps","molecular-dynamics","proxy-application"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ECP-copa.png","metadata":{"files":{"readme":"README.md","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-02-16T22:02:23.000Z","updated_at":"2025-09-05T05:07:31.000Z","dependencies_parsed_at":"2022-07-27T18:34:58.629Z","dependency_job_id":null,"html_url":"https://github.com/ECP-copa/ExaMiniMD","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/ECP-copa/ExaMiniMD","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ECP-copa%2FExaMiniMD","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ECP-copa%2FExaMiniMD/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ECP-copa%2FExaMiniMD/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ECP-copa%2FExaMiniMD/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ECP-copa","download_url":"https://codeload.github.com/ECP-copa/ExaMiniMD/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ECP-copa%2FExaMiniMD/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29605798,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-19T06:47:36.664Z","status":"ssl_error","status_checked_at":"2026-02-19T06:45:47.551Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["kokkos","lammps","molecular-dynamics","proxy-application"],"created_at":"2025-10-21T05:59:14.818Z","updated_at":"2026-02-19T07:01:32.333Z","avatar_url":"https://github.com/ECP-copa.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ExaMiniMD\n\nExaMiniMD is a proxy application and research vehicle for \nparticle codes, in particular Molecular Dynamics (MD). Compared to \nprevious MD proxy apps (MiniMD, COMD), its design is significantly more \nmodular in order to allow independent investigation of different aspects.\nTo achieve that the main components such as force calculation, \ncommunication, neighbor list construction and binning are derived \nclasses whose main functionality is accessed via virtual functions. \nThis allows a developer to write a new derived class and drop it into the code\nwithout touching much of the rest of the application.\n\nThese modules are included via a module header file. Those header files are\nalso used to inject the input parameter logic and instantiation logic into \nthe main code. As an example, look at modules_comm.h in conjunction with \ncomm_serial.h and comm_mpi.h. \n\nIn the future the plan is to provide focused miniApps with a subset of the \navailable functionality for specific research purposes. \n\nThis implementation uses the Kokkos programming model, which you can clone\nfrom github via:\n```\ngit clone https://github.com/kokkos/kokkos ~/kokkos\n```\n\n# Current Capabilities\n\n### Force Fields:\n * Lennard-Jones Cell List\n * Lennard-Jones Neighbor List\n * SNAP Full Neighbor List \n\n### Neighbor List:\n * 2D NeighborList creation\n * CSR NeighborList creation\n\n### Integrator:\n * NVE (constant energy velocity-Verlet)\n\n### Communication\n * Serial\n * MPI\n\n### Binning:\n * Kokkos Sort Binning\n\n### Input:\n * Restricted LAMMPS input files\n\n# Compilation\n\nExaMiniMD utilizes the standard GNU Make build system of Kokkos. For\ndetailed information about the Kokkos build process please refer to \ndocumentation of Kokkos at github.com/kokkos/kokkos\nExaMiniMD requires Kokkos version 2.6.00 (March 2018) as a minimum.\nExaMiniMD requires a C++11 compiler. Here is some quickstart\ninformation which assume that Kokkos was \ncloned into ${HOME}/kokkos (see above) and you are in the \"src\"\ndirectory:\n\nIntel Sandy-Bridge CPU / Serial / MPI:\n```\n  make -j KOKKOS_ARCH=SNB KOKKOS_DEVICES=Serial CXX=mpicxx MPI=1\n```\n\nIntel Haswell CPU / Pthread / No MPI:\n```\n  make -j KOKKOS_ARCH=HSW KOKKOS_DEVICES=Pthread CXX=clang MPI=0\n```\n\nIBM Power8 CPU / OpenMP / MPI\n```\n  make -j KOKKOS_ARCH=Power8 KOKKOS_DEVICES=OpenMP CXX=mpicxx\n```\n\nIBM Power8 CPU + NVIDIA P100 / CUDA / MPI (OpenMPI)\n```\n  export OMPI_CXX=[KOKKOS_PATH]/bin/nvcc_wrapper\n  make -j KOKKOS_ARCH=Power8,Pascal60 KOKKOS_DEVICES=Cuda CXX=mpicxx\n```\n\n# Running\n\nCurrently ExaMiniMD can only get input from LAMMPS input files with a \nrestricted set of LAMMPS commands. An example input file is provided in the\ninput directory. Assuming you build in the src directory:\n\nTo run 2 MPI tasks, with 12 threads per task:\n```\nmpirun -np 2 -bind-to socket ./ExaMiniMD -il ../input/in.lj --comm-type MPI --kokkos-threads=12\n```\n\nTo run 2 MPI tasks, with 1 GPU per task:\n```\nmpirun -np 2 -bind-to socket ./ExaMiniMD -il ../input/in.lj --comm-type MPI --kokkos-ndevices=2\n```\n\nTo run in serial, writing binary output every timestep to ReferenceDir\n```\n./ExaMiniMD -il ../input/in.lj --kokkos-threads=1 --binarydump 1 ReferenceDir \n```\n\nTo run in serial with 2 threads, checking correctness every timestep against ReferenceDir\n```\n./ExaMiniMD -il ../input/in.lj --kokkos-threads=2 --correctness 1 ReferenceDir correctness.dat \n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fecp-copa%2Fexaminimd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fecp-copa%2Fexaminimd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fecp-copa%2Fexaminimd/lists"}