From f5214f9d56520fab66fa2ebcd0613a7e774c578c Mon Sep 17 00:00:00 2001 From: Lars Bilke <lars.bilke@ufz.de> Date: Fri, 17 Jan 2025 11:41:42 +0100 Subject: [PATCH] cleanup. --- .gitlab-ci.yml | 3 - Makefile | 26 ------- paper/bibliography.bib | 105 ----------------------------- paper/ci-paper.yml | 14 ---- paper/filters/color.lua | 48 ------------- paper/filters/include.py | 63 ----------------- paper/filters/spellcheck.lua | 70 ------------------- paper/index.md | 73 -------------------- paper/style.tex | 66 ------------------ studies/performance/content.md | 1 - studies/reproducibility/content.md | 1 - studies/workflow/content.md | 1 - tests/content.md | 8 --- workflow/queries.py | 17 ----- workflow/requirements.txt | 1 - 15 files changed, 497 deletions(-) delete mode 100644 .gitlab-ci.yml delete mode 100644 Makefile delete mode 100644 paper/bibliography.bib delete mode 100644 paper/ci-paper.yml delete mode 100644 paper/filters/color.lua delete mode 100644 paper/filters/include.py delete mode 100644 paper/filters/spellcheck.lua delete mode 100644 paper/index.md delete mode 100644 paper/style.tex delete mode 100644 studies/performance/content.md delete mode 100644 studies/reproducibility/content.md delete mode 100644 studies/workflow/content.md delete mode 100644 tests/content.md delete mode 100644 workflow/queries.py diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index 82344cd..0000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,3 +0,0 @@ -include: - # - local: "/container/ci-container.yml" - - local: "/paper/ci-paper.yml" diff --git a/Makefile b/Makefile deleted file mode 100644 index 6637bf7..0000000 --- a/Makefile +++ /dev/null @@ -1,26 +0,0 @@ -.PHONY: all build spellcheck clean watch html - -all: paper.pdf - -CROSSREF := $(shell command -v pandoc-crossref 2> /dev/null) -PANDOC_ARGS = --from=markdown --highlight-style=tango -F mermaid-filter -F ${CROSSREF} --citeproc --number-sections -SRCS = paper/index.md $(wildcard **/content.md */**/content.md) -DEPS = ${SRCS} paper/style.tex Makefile $(wildcard filter/*.lua) - -paper.pdf: $(DEPS) - pandoc --listings -s -H paper/style.tex --lua-filter paper/filters/color.lua -o $@ ${PANDOC_ARGS} ${SRCS} - -spellcheck: - ASPELL_CONF="personal ./.aspell.en.pws" pandoc --lua-filter paper/filters/spellcheck.lua ${SRCS} - -clean: - @echo "Cleaning up..." - rm *.pdf - -watch: - fswatch -0 -o -l 2 **/*.md **/*.bib | xargs -0 -n 1 make build - -html: index.html - -%.html: $(DEPS) - pandoc --standalone --mathjax -o $@ ${PANDOC_ARGS} ${SRCS} diff --git a/paper/bibliography.bib b/paper/bibliography.bib deleted file mode 100644 index 3a7ca84..0000000 --- a/paper/bibliography.bib +++ /dev/null @@ -1,105 +0,0 @@ -@article{Wang2009, - title = {A parallel finite element scheme for thermo-hydro-mechanical (THM) coupled problems in porous media}, - journal = {Computers \& Geosciences}, - volume = {35}, - number = {8}, - pages = {1631 - 1641}, - year = {2009}, - issn = {0098-3004}, - author = {Wenqing Wang and Georg Kosakowski and Olaf Kolditz}, - keywords = {Parallel computing, Finite element method, Domain decomposition, Thermo-hydro-mechanical (THM) coupled processes, Porous media} -} - -@book{Kolditz2012, - title = {Thermo-Hydro-Mechanical-Chemical Processes in Porous Media - Benchmarks and Examples}, - author = {Kolditz, O. and Görke, U.-J. and Shao, H. and Wang, W.}, - publisher = {Springer}, - year = {2012}, - volume = {86}, - doi = {10.1007/978-3-642-27177-9}, - isbn = {978-3-642-27176-2}, - category = {Processes} -} - -@article{Wang2015, - author = {Wang, Wenqing and Fischer, Thomas and Zehner, Bj{\"{o}}rn and B{\"{o}}ttcher, Norbert and G{\"{o}}rke, Uwe Jens and Kolditz, Olaf}, - issn = {18666299}, - journal = {Environmental Earth Sciences}, - number = {5}, - pages = {2269--2285}, - title = {{A parallel finite element method for two-phase flow processes in porous media: OpenGeoSys with PETSc}}, - volume = {73}, - year = {2015} -} - -@book{ddc, - author = {Toselli, Andrea and Widlund, Olof B.}, - publisher = {Springer}, - title = {Domain Decomposition Methods — Algorithms and Theory}, - year = {2005}, - doi = {10.1007/b137868}, - isbn = {978-3-540-26662-4} -} - -@article{Wang2009, - title = {A parallel finite element scheme for thermo-hydro-mechanical (THM) coupled problems in porous media}, - journal = {Computers \& Geosciences}, - volume = {35}, - number = {8}, - pages = {1631 - 1641}, - year = {2009}, - issn = {0098-3004}, - author = {Wenqing Wang and Georg Kosakowski and Olaf Kolditz}, - keywords = {Parallel computing, Finite element method, Domain decomposition, Thermo-hydro-mechanical (THM) coupled processes, Porous media} -} - - -@inproceedings{10.5555/1898953.1899055, - author = {Abou-Rjeili, Amine and Karypis, George}, - title = {Multilevel Algorithms for Partitioning Power-Law Graphs}, - year = {2006}, - isbn = {1424400546}, - publisher = {IEEE Computer Society}, - address = {USA}, - booktitle = {Proceedings of the 20th International Conference on Parallel and Distributed Processing}, - pages = {124}, - numpages = {1}, - location = {Rhodes Island, Greece}, - series = {IPDPS'06} -} - -@article{10.12688/f1000research.29032.2, - author = { Mölder, F and Jablonski, KP and Letcher, B and Hall, MB and Tomkins-Tinch, CH and Sochat, V and Forster, J and Lee, S and Twardziok, SO and Kanitz, A and Wilm, A and Holtgrewe, M and Rahmann, S and Nahnsen, S and Köster, J}, - title = {Sustainable data analysis with Snakemake [version 2; peer review: 2 approved] - }, - journal = {F1000Research}, - volume = {10}, - year = {2021}, - number = {33}, - doi = {10.12688/f1000research.29032.2} -} - -@techreport{petsc-user-ref, - author = {Satish Balay and Shrirang Abhyankar and Mark~F. Adams and Steven - Benson and Jed Brown and Peter Brune and Kris Buschelman and Emil Constantinescu and Lisandro Dalcin and Alp Dener and Victor Eijkhout and William~D. Gropp and V\'{a}clav Hapla and Tobin Isaac and Pierre Jolivet and Dmitry Karpeev and Dinesh Kaushik and Matthew~G. Knepley and Fande Kong and Scott Kruger and Dave~A. May and Lois Curfman McInnes and Richard Tran Mills and Lawrence Mitchell and Todd Munson and Jose~E. Roman and Karl Rupp and Patrick Sanan and Jason Sarich and Barry~F. Smith and Stefano Zampini and Hong Zhang and Hong Zhang and Junchao Zhang}, - title = {{PETSc/TAO} Users Manual}, - institution = {Argonne National Laboratory}, - number = {ANL-21/39 - Revision 3.16}, - year = {2021} -} - -@article{Bilke2019, - author = {Bilke, Lars and Flemisch, Bernd and Kalbacher, Thomas and Kolditz, Olaf and Helmig, Rainer and Nagel, Thomas}, - day = 01, - doi = {10.1007/s11242-019-01310-1}, - issn = {1573-1634}, - journal = {Transport in Porous Media}, - month = {10}, - number = 1, - pages = {337--361}, - title = {Development of Open-Source Porous Media Simulators: Principles and Experiences}, - url = {https://doi.org/10.1007/s11242-019-01310-1}, - volume = 130, - year = 2019 -} - diff --git a/paper/ci-paper.yml b/paper/ci-paper.yml deleted file mode 100644 index 4f09aea..0000000 --- a/paper/ci-paper.yml +++ /dev/null @@ -1,14 +0,0 @@ -pdf: - tags: [envinf, shell] - stage: build - rules: - - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - - changes: - - "**/*.md" - - Makefile - script: - - make - artifacts: - when: always - paths: - - paper.pdf diff --git a/paper/filters/color.lua b/paper/filters/color.lua deleted file mode 100644 index 4b9d100..0000000 --- a/paper/filters/color.lua +++ /dev/null @@ -1,48 +0,0 @@ -Span = function(el) - color = el.attributes['color'] - -- if no color attribute, return unchanged - if color == nil then return el end - - -- transform to <span style="color: red;"></span> - if FORMAT:match 'html' then - -- remove color attributes - el.attributes['color'] = nil - -- use style attribute instead - el.attributes['style'] = 'color: ' .. color .. ';' - -- return full span element - return el - elseif FORMAT:match 'latex' then - -- remove color attributes - el.attributes['color'] = nil - -- encapsulate in latex code - table.insert( - el.content, 1, - pandoc.RawInline('latex', '\\textcolor{'..color..'}{') - ) - table.insert( - el.content, - pandoc.RawInline('latex', '}') - ) - return el.content - else - -- for other format return unchanged - return el - end - end - -function Div(el) - if el.classes[1] == "warning" - or el.classes[1] == "workflow" - -- ADD HERE MORE CLASSES - then - -- insert element in front - table.insert( - el.content, 1, - pandoc.RawBlock("latex", "\\begin{quote_" .. el.classes[1] .. "}")) - -- insert element at the back - table.insert( - el.content, - pandoc.RawBlock("latex", "\\end{quote_" .. el.classes[1] .. "}")) - end - return el -end diff --git a/paper/filters/include.py b/paper/filters/include.py deleted file mode 100644 index abfeffd..0000000 --- a/paper/filters/include.py +++ /dev/null @@ -1,63 +0,0 @@ -""" -Panflute filter to allow file includes - -Each include statement has its own line and has the syntax: - - $include ../somefolder/somefile - -Each include statement must be in its own paragraph. That is, in its own line -and separated by blank lines. - -If no extension was given, ".md" is assumed. -""" - -import os -import panflute as pf - - -def is_include_line(elem): - if len(elem.content) < 3: - return False - elif not all(isinstance(x, (pf.Str, pf.Space)) for x in elem.content): - return False - elif elem.content[0].text != "$include": - return False - elif type(elem.content[1]) != pf.Space: - return False - else: - return True - - -def get_filename(elem): - fn = pf.stringify(elem, newlines=False).split(maxsplit=1)[1] - if not os.path.splitext(fn)[1]: - fn += ".md" - return fn - - -# TODO: make this recursive -def action(elem, doc): - if isinstance(elem, pf.Para) and is_include_line(elem): - - fn = get_filename(elem) - if not os.path.isfile(fn): - return - - with open(fn) as f: - raw = f.read() - - new_elems = pf.convert_text(raw) - - # Alternative A: - return new_elems - # Alternative B: - # div = pf.Div(*new_elems, attributes={'source': fn}) - # return div - - -def main(doc=None): - return pf.run_filter(action, doc=doc) - - -if __name__ == "__main__": - main() diff --git a/paper/filters/spellcheck.lua b/paper/filters/spellcheck.lua deleted file mode 100644 index 13a10d5..0000000 --- a/paper/filters/spellcheck.lua +++ /dev/null @@ -1,70 +0,0 @@ --- lua filter for spell checking: requires 'aspell'. --- Copyright (C) 2017-2020 John MacFarlane, released under MIT license - -local text = require('text') -local words = {} -local deflang - -local function add_to_dict(lang, t) - if not words[lang] then - words[lang] = {} - end - if not words[lang][t] then - words[lang][t] = (words[lang][t] or 0) + 1 - end -end - -local function get_deflang(meta) - deflang = (meta.lang and meta.lang[1] and meta.lang[1].c) or 'en' - -- the following is better but won't work in pandoc 2.0.6. - -- it requires pandoc commit ecc46e229fde934f163d1f646383d24bfe2039e1: - -- deflang = (meta.lang and pandoc.utils.stringify(meta.lang)) or 'en' - return {} -- eliminate meta so it doesn't get spellchecked -end - -local function run_spellcheck(lang) - local keys = {} - local wordlist = words[lang] - for k,_ in pairs(wordlist) do - keys[#keys + 1] = k - end - local inp = table.concat(keys, '\n') - local outp = pandoc.pipe('aspell', {'list','-l',lang}, inp) - for w in string.gmatch(outp, "([%S]+)\n") do - io.write(w) - if lang ~= deflang then - io.write("\t[" .. lang .. "]") - end - io.write("\n") - end -end - -local function results(el) - pandoc.walk_block(pandoc.Div(el.blocks), {Str = function(e) add_to_dict(deflang, e.text) end}) - for lang,v in pairs(words) do - run_spellcheck(lang) - end - os.exit(0) -end - -local function checkstr(el) - add_to_dict(deflang, el.text) -end - -local function checkspan(el) - local lang = el.attributes.lang - if not lang then return nil end - pandoc.walk_inline(el, {Str = function(e) add_to_dict(lang, e.text) end}) - return {} -- remove span, so it doesn't get checked again -end - -local function checkdiv(el) - local lang = el.attributes.lang - if not lang then return nil end - pandoc.walk_block(el, {Str = function(e) add_to_dict(lang, e.text) end}) - return {} -- remove div, so it doesn't get checked again -end - -return {{Meta = get_deflang}, - {Div = checkdiv, Span = checkspan}, - {Str = function(e) add_to_dict(deflang, e.text) end, Pandoc = results}} diff --git a/paper/index.md b/paper/index.md deleted file mode 100644 index ae00c55..0000000 --- a/paper/index.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: "Reproducible HPC software deployments, simulations and workflows" -author: - - Lars Bilke - - Thomas Fischer - - Tobias Meisel - - Dmitri Naumov -date: 30. Juni 2024 -lang: en - -### Latex ### -documentclass: article -geometry: - - top=30mm - - left=20mm - - heightrounded -papersize: a4 - -hyperrefoptions: - - linktoc=all -colorlinks: true -link-citations: true - -toc: true - -bibliography: paper/bibliography.bib - -graphics: yes - -header-includes: - - \usepackage{siunitx} - -codeBlockCaptions: yes ---- - -\pagebreak - -# Abstract - -# Description of HPC environments - -## UFZ EVE - -## JSC JUWELS - -- https://www.fz-juelich.de/en/ias/jsc/systems/supercomputers/juwels -- cluster + Booster module -- for the study simulations are conducted only on cluster module - -### cluster module - -- BullSequana X1000 system with Intel Xeon Skylake-SP processors -- configuration (source: https://apps.fz-juelich.de/jsc/hps/juwels/configuration.html) - - 2271 standard compute nodes (2x Intel Xeon Platinum 8168 CPU, 2x 24 cores, 2.7 GHz; 96 (12x 8) GB DDR4, 2666 MHz) - - 240 large memory compute nodes (2x Intel Xeon Platinum 8168 CPU, 2x 24 cores, 2.7 GHz; 192 (12x 16) GB DDR4, 2666 MHz) - - connected via InfiniBand EDR (Connect-X4) - -- simulations run exclusively on compute node - -## TU Dresden Barnard - -# Reproducible software deployment with GNU Guix - -- Intro to Guix -- Packaging ogs with Guix - - Missing dependencies - - Changes to OGS - - Making it reproducible -- Packaging ogstools with Guix -- Creating container - - petsc pmix fix - - petsc size reduction - - make petsc reproducible diff --git a/paper/style.tex b/paper/style.tex deleted file mode 100644 index 511a7d6..0000000 --- a/paper/style.tex +++ /dev/null @@ -1,66 +0,0 @@ -\usepackage{tcolorbox} - -% New tcolorbox -\newtcolorbox{warning}{colback=red!5!white, colframe=red!50!white, title={Hinweis},fonttitle=\bfseries} -\newtcolorbox{workflow}{colback=green!5!white, colframe=green!50!black, title={Workflow},fonttitle=\bfseries,} - -% Declare the environments -\newenvironment{quote_warning}{\begin{warning}}{\end{warning}} -\newenvironment{quote_workflow}{\begin{workflow}}{\end{workflow}} - -\usepackage{titling} -\pretitle{\begin{center}\vspace{-3cm}\LARGE\bfseries} -\posttitle{\end{center}\vspace{-0cm}} - -\usepackage{listings} -\usepackage{xcolor} -\newcommand{\passthrough}[1]{#1} -\lstset{ - basicstyle=\small\ttfamily, - columns=fullflexible, - breaklines=true, - postbreak=\mbox{\textcolor{red}{$\hookrightarrow$}\space}, - keywordstyle=\color[rgb]{0.13,0.29,0.53}\bfseries, - stringstyle=\color[rgb]{0.31,0.60,0.02}, - commentstyle=\color[rgb]{0.56,0.35,0.01}\itshape, - backgroundcolor=\color[RGB]{248,248,248}, -} - -\usepackage{dirtree} - -% pandoc-crossref, see https://github.com/lierdakil/pandoc-crossref/issues/326#issuecomment-902798819 -\makeatletter -\@ifpackageloaded{subfig}{}{\usepackage{subfig}} -\@ifpackageloaded{caption}{}{\usepackage{caption}} -\captionsetup[subfloat]{margin=0.5em} -\AtBeginDocument{% -\renewcommand*\figurename{Abbildung} -\renewcommand*\tablename{Tabelle} -} -\AtBeginDocument{% -\renewcommand*\listfigurename{Abbildungsverzeichnis} -\renewcommand*\listtablename{Tabellenverzeichnis} -} -\newcounter{pandoccrossref@subfigures@footnote@counter} -\newenvironment{pandoccrossrefsubfigures}{% -\setcounter{pandoccrossref@subfigures@footnote@counter}{0} -\begin{figure}\centering% -\gdef\global@pandoccrossref@subfigures@footnotes{}% -\DeclareRobustCommand{\footnote}[1]{\footnotemark% -\stepcounter{pandoccrossref@subfigures@footnote@counter}% -\ifx\global@pandoccrossref@subfigures@footnotes\empty% -\gdef\global@pandoccrossref@subfigures@footnotes{{##1}}% -\else% -\g@addto@macro\global@pandoccrossref@subfigures@footnotes{, {##1}}% -\fi}}% -{\end{figure}% -\addtocounter{footnote}{-\value{pandoccrossref@subfigures@footnote@counter}} -\@for\f:=\global@pandoccrossref@subfigures@footnotes\do{\stepcounter{footnote}\footnotetext{\f}}% -\gdef\global@pandoccrossref@subfigures@footnotes{}} -\@ifpackageloaded{float}{}{\usepackage{float}} -\floatstyle{ruled} -\@ifundefined{c@chapter}{\newfloat{codelisting}{h}{lop}}{\newfloat{codelisting}{h}{lop}[chapter]} -\floatname{codelisting}{Listing} -\newcommand*\listoflistings{\listof{codelisting}{List of Listings}} -\makeatother - diff --git a/studies/performance/content.md b/studies/performance/content.md deleted file mode 100644 index 88c7771..0000000 --- a/studies/performance/content.md +++ /dev/null @@ -1 +0,0 @@ -# Performance study diff --git a/studies/reproducibility/content.md b/studies/reproducibility/content.md deleted file mode 100644 index afd01b6..0000000 --- a/studies/reproducibility/content.md +++ /dev/null @@ -1 +0,0 @@ -# Reproducibility study diff --git a/studies/workflow/content.md b/studies/workflow/content.md deleted file mode 100644 index 8b6e1ec..0000000 --- a/studies/workflow/content.md +++ /dev/null @@ -1 +0,0 @@ -# Workflow study diff --git a/tests/content.md b/tests/content.md deleted file mode 100644 index e1e8bd2..0000000 --- a/tests/content.md +++ /dev/null @@ -1,8 +0,0 @@ -# Container tests - -- mpi bandwidth test -- Simple parallel ogs run -- Smaller generic cube liquid flow test - - 250 x 250 x 250 elements - - 96 partitions - - runtime < 10 minutes diff --git a/workflow/queries.py b/workflow/queries.py deleted file mode 100644 index 4a78a6a..0000000 --- a/workflow/queries.py +++ /dev/null @@ -1,17 +0,0 @@ -from aiida.orm import QueryBuilder, CalcJobNode, Str -from aiida_shell import ShellJob - -qb = QueryBuilder() # Instantiating instance. One instance -> one query -qb.append(ShellJob, tag='shelljob', filters={ # Specify the filters: - 'attributes.process_state': 'finished', # the process is finished - }) -qb.limit(30) -# qb.append(Str, with_incoming='shelljob') -for row in qb.iterall(): - # print(row[0]) - if 'stdout' in row[0].outputs: - print(row[0].outputs['stdout'].get_content()) -# all_results_d = qb.dict() # Returns all results as a list of dictionaries -# print(all_results_d) -# all_results_l = qb.all() -# print(all_results_l) \ No newline at end of file diff --git a/workflow/requirements.txt b/workflow/requirements.txt index 838290a..8349dbc 100644 --- a/workflow/requirements.txt +++ b/workflow/requirements.txt @@ -1,5 +1,4 @@ aiida-core[rest]~=2.6 -#git+https://github.com/aiidateam/aiida-core.git@main#egg=aiida-core aiida-shell>=0.8.0 pandas Jinja2 -- GitLab