{"id":22410998,"url":"https://github.com/e3sm-project/ekea","last_synced_at":"2025-07-09T23:32:45.857Z","repository":{"id":49720882,"uuid":"348762352","full_name":"E3SM-Project/ekea","owner":"E3SM-Project","description":"E3SM Kernel Extraction and Analysis Toolkit","archived":false,"fork":false,"pushed_at":"2023-08-03T17:53:03.000Z","size":542,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-27T02:46:01.325Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":" https://ekea.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/E3SM-Project.png","metadata":{"files":{"readme":"README.rst","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,"governance":null}},"created_at":"2021-03-17T15:37:36.000Z","updated_at":"2022-10-11T18:26:30.000Z","dependencies_parsed_at":"2022-08-29T10:30:59.708Z","dependency_job_id":null,"html_url":"https://github.com/E3SM-Project/ekea","commit_stats":{"total_commits":61,"total_committers":3,"mean_commits":"20.333333333333332","dds":0.360655737704918,"last_synced_commit":"6dcb7f717d1b364bd71088250be0348696ed802b"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/E3SM-Project/ekea","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/E3SM-Project%2Fekea","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/E3SM-Project%2Fekea/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/E3SM-Project%2Fekea/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/E3SM-Project%2Fekea/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/E3SM-Project","download_url":"https://codeload.github.com/E3SM-Project/ekea/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/E3SM-Project%2Fekea/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264505263,"owners_count":23618911,"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":[],"created_at":"2024-12-05T13:12:42.344Z","updated_at":"2025-07-09T23:32:45.839Z","avatar_url":"https://github.com/E3SM-Project.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"===========================================\nekea : E3SM Kernel Extractor and Analyser\n===========================================\n\n**ekea** automates the process of kernel extraction from a large Fortran applicatin. Especially, it is customized for E3SM so that, in many kernel extraction cases from E3SM, user only needs to specify a E3SM case directory and a code region for kernel extraction.\n\nTo use ekea, **ekea** needs be installed on the system where E3SM case directory and E3SM source files exist.\n\n-------------\nInstallation\n-------------\n\nThe easiest way to install **ekea** is to use the pip python package manager. \n\n.. code-block:: bash\n\n        \u003e\u003e\u003e pip install ekea\n\nYou can install **ekea** from github code repository if you want to try the latest version.\n\n.. code-block:: bash\n\n        \u003e\u003e\u003e git clone https://github.com/grnydawn/ekea.git\n        \u003e\u003e\u003e cd ekea\n        \u003e\u003e\u003e python setup.py install\n\nOnce installed, you can test the installation by running the following command.\n\n.. code-block:: bash\n\n        \u003e\u003e\u003e ekea --version\n        ekea 1.1.2\n\n------------\nRequirements\n------------\n\n- Linux OS\n- Python 3.5+\n- Make building tool(make)\n- C Preprocessor(cpp)\n- System Call Tracer(strace)\n\n-------------------------\nE3SM Kernel Extraction\n-------------------------\n\nOnce **ekea** is installed correctly and a E3SM case is created successfully, you can extract a kernel as explained below.\n\nThe syntax of **ekea** command for simple usage is following:\n\n.. code-block:: bash\n\n        \u003e\u003e\u003e ekea \u003cocn|eam\u003e $CASEDIR $CALLSITEFILE\n\n, where $CASEDIR is a directory path to E3SM case directory and $CALLSITEFILE is a file path to a E3SM source file containing **ekea** kernel region directives(explained below).\n\nNext to \"ekea\" command, user chooses one of two subcommands(**ocn** or **eam**) for MPAS Ocean Model and E3SM Atmospheric Model each.\n\nKernel region directives\n-------------------------\n\nAs shown below, a pair of \"begin_callsite\" and \"end_callsite\" directives defines an ekea kernel region in source code. The kernel region is where to be extracted as a kernel. Following example shows a **ekea** kernel region that encompasses a DO loop.\n\n.. code-block:: fortran\n\n        ! file path : /my/E3SM/components/eam/src/file.F90\n\n        !$kgen begin_callsite vecadd\n        DO i=1\n            C(i) = A(i) + B(i)\n        END DO\n        !$kgen  end_callsite\n\nKernel extraction command\n-------------------------\n\nAssuming that the E3SM case directory is \"/e3smcases/mycase\" and the above ekea kernel region directives are specified in \"/my/E3SM/components/eam/src/file.F90\" under EAM source directory, the full ekea command is below:\n\n.. code-block:: bash\n\n        \u003e\u003e\u003e ekea eam /e3smcases/mycase /my/E3SM/components/eam/src/file.F90\n\n\nekea documentation: `https://ekea.readthedocs.io \u003chttps://ekea.readthedocs.io/\u003e`_\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fe3sm-project%2Fekea","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fe3sm-project%2Fekea","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fe3sm-project%2Fekea/lists"}