{"id":19706010,"url":"https://github.com/llnl/gremlins","last_synced_at":"2025-04-29T16:32:26.297Z","repository":{"id":66082923,"uuid":"14347382","full_name":"LLNL/Gremlins","owner":"LLNL","description":"Flexible and extensible framework to emulate expected exascale architecture characteristics","archived":false,"fork":false,"pushed_at":"2014-09-25T15:53:59.000Z","size":1012,"stargazers_count":8,"open_issues_count":1,"forks_count":2,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-05T18:06:21.576Z","etag":null,"topics":["exascale-computing"],"latest_commit_sha":null,"homepage":null,"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/LLNL.png","metadata":{"files":{"readme":"README","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":"2013-11-12T22:42:24.000Z","updated_at":"2023-10-20T15:10:45.000Z","dependencies_parsed_at":"2023-02-19T22:30:35.764Z","dependency_job_id":null,"html_url":"https://github.com/LLNL/Gremlins","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2FGremlins","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2FGremlins/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2FGremlins/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2FGremlins/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LLNL","download_url":"https://codeload.github.com/LLNL/Gremlins/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251540348,"owners_count":21605888,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["exascale-computing"],"created_at":"2024-11-11T21:33:05.382Z","updated_at":"2025-04-29T16:32:21.279Z","avatar_url":"https://github.com/LLNL.png","language":"C++","readme":"##############################################################################\n# Copyright (c) 2013-2014, Lawrence Livermore National Security, LLC.\n# Produced at the Lawrence Livermore National Laboratory\n#\n# Written by Martin Schulz et al \u003cschulzm@llnl.gov\u003e\n# LLNL-CODE-645436\n# All rights reserved.\n#\n# This file is part of the GREMLINS framework.\n# For details, see http://scalability.llnl.gov/gremlins.\n# Please read the LICENSE file for further information.\n#\n# Redistribution and use in source and binary forms, with or without\n# modification, are permitted provided that the following conditions are\n# met:\n#\n#     * Redistributions of source code must retain the above copyright\n#       notice, this list of conditions and the disclaimer below.\n#\n#     * Redistributions in binary form must reproduce the above\n#       copyright notice, this list of conditions and the disclaimer (as\n#       noted below) in the documentation and/or other materials\n#       provided with the distribution.\n#\n#     * Neither the name of the LLNS/LLNL nor the names of its\n#       contributors may be used to endorse or promote products derived\n#       from this software without specific prior written permission.\n#\n# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n# \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL LAWRENCE\n# LIVERMORE NATIONAL SECURITY, LLC, THE U.S. DEPARTMENT OF ENERGY OR\n# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n#\n# Written by Martin Schulz and Matthias Maiterth\n##############################################################################\n\n\n-------------------------------------------------------------------------------\n\n                                   GREMLINs\n              Emulating Exascale Conditions on Today's Platforms\n\n-------------------------------------------------------------------------------\n\n1. INTRODUCTION\n\nThe GREMLINs emulate the behavior of anticipated future architectures on \ncurrent machines. We focus on the impact of resource limitations (by \nartificially restricting them), as well as noise and faults by using injection \ntechniques--these issues are generally expected to be the dominating challenges \nin future machine generations.\n\nWe have four different classes of GREMLINS: \n\n(1) Power: artificially reduce the operating power using DVFS or cap power on a \nper node basis; \n(2) Memory: limit resources in the memory hierarchy such as cache size or \nmemory bandwidth by running interference threads; \n(3) Reselience: inject faults into target applications and enable us to study \nthe efficiency and correctness of recovery techniques;\n(4) Noise: inject periodic or random noise events to emulate system and OS \ninterference\n\n\n2. CODE STRUCTURE\n\n\\gremlin-release\n \\BUILD\n \\cmakefiles\n \\latency  \n \\memory\n \\noise\n \\power\n \\resilience\n \\thermal\n |-CMakeList.txt\n |-LICENSE\n |-README\n\nThe cmakefiles folder contains cmake specifications. The BUILD folder is used for out of source builds.\n\nAll other folders should be named according to the resource they focus on.\nIn each of these the CMakeList.txt describes how the gremlins in the folder are built.\nThere should be at least one gremlin that measures the resource and one that controlls or influences it.\n\n\n\n3. INSTALL\n\nBuild using cmake\n\nE.g.:\nmkdir BUILD\ncd BUILD\ncmake .. -DLIBMSR_HOME=/*YOUR_PATH_TO_LIBMSR_HOME*/libmsr -DCMAKE_INSTALL_PREFIX=../INSTALL -DCMAKE_BUILD_TYPE=RelWithDebugInfo -Dwrap_DIR=/*YOUR_PATH_TO_PnMPI_INSTALL*/share/cmake/PnMPI\nmake \nmake install \n\nThis will create a BUILD directory and configure all out of source configure files.\nCalling make in the BUILD directory creates the files as specified by cmake.\nmake install copies the binaries to the INSTALL folder.\n\nLIBMSR can be obtained from Barry Roundtree (https://github.com/scalability-llnl/libmsr)\n\nTo genearte source code from the wrapper files, the pnmpi wrapper is used.\n\n\nTo change these settings, see the cmake manual or use ccmake in the BUILD directory\n\n\nThe structure of the INSTALL folder is\n\\INSTALL\n \\lib\n\n,where lib contains all dynamic linked libraries.\n\n\n\nThese libraries can be used using LD_PRELOAD:\n\nexport LD_PRELOAD=$INSTALL/lib/libPowerMeter.so  \nsrun -n 16 ./helloMPI\nexport LD_PRELOAD=\"\"\n\n\n\nThe Gremlins framework supports multiple preloads for the combination of different GREMLINS and to study their impacts.\nThis is achieved using pnmpi (https://computation-rnd.llnl.gov/pnmpi/). \nPlease make sure the pnmpi version used supports signals and multiple preloads of libraries using signals.\n\nThe wrapper script used is provided by pnmpi.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fllnl%2Fgremlins","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fllnl%2Fgremlins","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fllnl%2Fgremlins/lists"}