Skip to content

Commit

Permalink
work on software analysis #44 and DOE stack software analysis #45
Browse files Browse the repository at this point in the history
  • Loading branch information
prudhomm committed May 31, 2023
1 parent 781d879 commit 722841e
Show file tree
Hide file tree
Showing 24 changed files with 291 additions and 1 deletion.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,5 @@ docs/meetings/20220907_kickoff/beamertheme-trigon/source/x.log
*.snm
*.synctex.gz
*.toc
.DS_Store//
.DS_Store

136 changes: 136 additions & 0 deletions docs/software/analysis/analysis.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
import pandas as pd
import math

# Specify the path to your Excel file
file_path = 'doe.xlsx'

# Read the Excel spreadsheet
df = pd.read_excel(file_path)

# Print the DataFrame
print(df)

solvers_list = [
"KokkosKernels",
"PETSc",
"PARDISO",
"Trilinos",
"SuperLU-Dist",
"STRUMPACK",
"Hypre",
"SPARSKIT",
"BLAS",
"SuperLU",
"SparsePACK",
"LAPACK"
]
math_list = ["SAMRAI", "STK", "MFEM", "UMR", "Portage", "Tangram", "Axom", "Overlink", "METIS", "ParMETIS", "Sculpt", "libigl"]
compilers_list = ["Kokkos", "RAJA Suite", "FleCSI", "Flang", "MPICH", "OpenMPI", "Legion", "PyKokkos", "KokkosRemoteMemorySpaces", "Fortran", "MPI", "C", "C++", "GCC", "HIP", "CUDA", "Python", "OpenMP", "Intel Compiler Suite", "LLVM", "Perl", "PyTorch", "TensorFlow", "Boost", "Intel MPI"]
system_list = ["CharlieCloud", "LDMS", "Flux", "SICM", "AppSysFusion", "GMI", "Maestro/Merlin", "Splunk", "SLURM", "VmWare", "LSF"]
visu_list = ["VTK/VTKm", "Paraview", "Visit", "Catalyst", "Conduit", "Cinema", "Ascent"]
build_list = ["Spack", "BLT", "CMake", "Ninja", "Autoconf/Automake", "gdb", "git", "Gitlab", "git-lfs", "Valgrind", "AllineaForge", "TotalView", "Caliper", "Archer", "PAPI", "KokkosTools", "CDash", "STAT"]
io_list = ["HDF5/Parallel-HDF5", "NetCDF, pNetCDF", "SEACAS", "UnifyFS", "ZFP", "HPSS, MarFS, SILO", "Exodus, yamlcpp", "GUFI, HIO, SCR, Sina/Kosh", "CGNS, libz", "DB2, Matio", "ADIOS, szip/AEC"]


# Define the mapping from scale to numerical values
scale_mapping = {
"Low": 0,
"Medium": 1,
"High": 2,
"Very High": 3
}

data_map = {
"solvers_list": (["KokkosKernels", "PETSc", "PARDISO", "Trilinos", "SuperLU-Dist", "STRUMPACK", "Hypre", "SPARSKIT", "BLAS", "SuperLU", "SparsePACK", "LAPACK"], "Solver Libraries"),
"math_list": (["SAMRAI", "STK", "MFEM", "UMR", "Portage", "Tangram", "Axom", "Overlink", "METIS", "ParMETIS", "Sculpt", "libigl"], "Math, Meshing, Discretization & Decomposition"),
"compilers_list": (["Kokkos", "RAJA Suite", "FleCSI", "Flang", "MPICH", "OpenMPI", "Legion", "PyKokkos", "KokkosRemoteMemorySpaces", "Fortran", "MPI", "C", "C++", "GCC", "HIP", "CUDA", "Python", "OpenMP", "Intel Compiler Suite", "LLVM", "Perl", "PyTorch", "TensorFlow", "Boost", "Intel MPI"], "Compilers, Runtimes and Languages"),
"system_list": (["CharlieCloud", "LDMS", "Flux", "SICM", "AppSysFusion", "GMI", "Maestro/Merlin", "Splunk", "SLURM", "VmWare", "LSF"], "System imaging, system monitoring and management"),
"visu_list": (["VTK/VTKm", "Paraview", "Visit", "Catalyst", "Conduit", "Cinema", "Ascent"], "Visualisation And Analysis"),
"build_list": (["Spack", "BLT", "CMake", "Ninja", "Autoconf/Automake", "gdb", "git", "Gitlab", "git-lfs", "Valgrind", "AllineaForge", "TotalView", "Caliper", "Archer", "PAPI", "KokkosTools", "CDash", "STAT"], "Build, Development and Software Eng."),
"io_list": (["HDF5/Parallel-HDF5", "NetCDF, pNetCDF", "SEACAS", "UnifyFS", "ZFP", "HPSS, MarFS, SILO", "Exodus, yamlcpp", "GUFI, HIO, SCR, Sina/Kosh", "CGNS, libz", "DB2, Matio", "ADIOS, szip/AEC"], "IO Storage/Data management")
}

for software_list, title in data_map.values():
print(f"Processing {title}: {software_list}")
average_value = dict()
# Define the reverse mapping
reverse_mapping = {v: k for k, v in scale_mapping.items()}

for software in software_list:
software_columns = [column for column in df.columns if software in column]
if software_columns:
# Apply the mapping to the specific columns
df[software_columns] = df[software_columns].replace(scale_mapping)
# Ignore rows with all NaN values
average_value[software] = df[software_columns].dropna(how='all').mean(axis=0)
# Convert the average value back to the scale
average_value[software] = average_value[software].round().map(reverse_mapping)
print(f"Average value for {software}: {average_value[software]}")
#print(f"Average value for {software}: {average_value[software]}")
# Print the results for each column
#for column in software_columns:
# print(f"Results for {column}:")
# print(df[column].map(reverse_mapping).dropna())
else:
print(f"No columns found for {software}")


# Define the table structure
table = {
("Low", "Low"): [],
("Low", "Medium"): [],
("Low", "High"): [],
("Low", "Very High"): [],
("Medium", "Low"): [],
("Medium", "Medium"): [],
("Medium", "High"): [],
("Medium", "Very High"): [],
("High", "Low"): [],
("High", "Medium"): [],
("High", "High"): [],
("High", "Very High"): [],
("Very High", "Low"): [],
("Very High", "Medium"): [],
("Very High", "High"): [],
("Very High", "Very High"): [],
}

# Fill the table with software names
for software in software_list:
row=dict()
col=dict()
ok=0
for key, val in average_value[software].items():
if "Likelihood" in key:
if val in ["Very High","High","Medium","Low"]:
row[software]=val
else:
row[software]="Low"
if "Impact" in key:
if val in ["Very High","High","Medium","Low"]:
col[software]=val
else:
col[software]="Low"
table[(row[software], col[software])].append(software)
# print(table)

## Create the AsciiDoc table
asciidoc_table = f"""
.Likelihood-Impact Matrix for {title}
|===\n|Likelihood \\ Impact|Very High|High|Medium|Low\n
"""
#
for likelihood in ["Very High","High","Medium","Low"]:
asciidoc_table += f"|{likelihood}"
for impact in ["Very High","High","Medium","Low"]:
asciidoc_table += f"|{', '.join(table[(likelihood, impact)])}"
asciidoc_table += "\n"

asciidoc_table += "|===\n\n"

with open(f"doe-analysis.adoc", "a") as f:
f.write(f"== {title}")
f.write(asciidoc_table)



77 changes: 77 additions & 0 deletions docs/software/analysis/doe-analysis.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
== Solver Libraries
.Likelihood-Impact Matrix for Solver Libraries
|===
|Likelihood \ Impact|Very High|High|Medium|Low

|Very High||||
|High||Hypre|Trilinos|
|Medium||PETSc, STRUMPACK, SuperLU|PARDISO, SPARSKIT, SparsePACK|KokkosKernels
|Low||BLAS, LAPACK|SuperLU-Dist|
|===

== Math, Meshing, Discretization & Decomposition
.Likelihood-Impact Matrix for Math, Meshing, Discretization & Decomposition
|===
|Likelihood \ Impact|Very High|High|Medium|Low

|Very High||||
|High||MFEM||libigl
|Medium||METIS, ParMETIS||
|Low||SAMRAI||STK, UMR, Portage, Tangram, Axom, Overlink, Sculpt
|===

== Compilers, Runtimes and Languages
.Likelihood-Impact Matrix for Compilers, Runtimes and Languages
|===
|Likelihood \ Impact|Very High|High|Medium|Low

|Very High||||
|High||PyKokkos, Python, TensorFlow||
|Medium|C++, GCC|MPICH, OpenMPI, Fortran, MPI, HIP, CUDA, OpenMP, PyTorch, Boost, Intel MPI||Kokkos, C
|Low|RAJA Suite|Flang, Intel Compiler Suite, LLVM|FleCSI, KokkosRemoteMemorySpaces, Perl|Legion
|===

== System imaging, system monitoring and management
.Likelihood-Impact Matrix for System imaging, system monitoring and management
|===
|Likelihood \ Impact|Very High|High|Medium|Low

|Very High||||
|High|||CharlieCloud|
|Medium||LSF||LDMS, Flux, SICM, AppSysFusion, GMI, Maestro/Merlin, Splunk, VmWare
|Low||SLURM||
|===

== Visualisation And Analysis
.Likelihood-Impact Matrix for Visualisation And Analysis
|===
|Likelihood \ Impact|Very High|High|Medium|Low

|Very High||||
|High||Visit, Conduit|Catalyst|Cinema, Ascent
|Medium||VTK/VTKm, Paraview||
|Low||||
|===

== Build, Development and Software Eng.
.Likelihood-Impact Matrix for Build, Development and Software Eng.
|===
|Likelihood \ Impact|Very High|High|Medium|Low

|Very High||||
|High|git, git-lfs|Spack||
|Medium|CMake, gdb|Autoconf/Automake, Gitlab, Valgrind, Caliper||Archer, PAPI, KokkosTools, CDash, STAT
|Low|Ninja|BLT, TotalView|AllineaForge|
|===

== IO Storage/Data management
.Likelihood-Impact Matrix for IO Storage/Data management
|===
|Likelihood \ Impact|Very High|High|Medium|Low

|Very High||||
|High||||
|Medium|HDF5/Parallel-HDF5|NetCDF, pNetCDF, SEACAS, HPSS, MarFS, SILO, Exodus, yamlcpp, ADIOS, szip/AEC||UnifyFS, ZFP, GUFI, HIO, SCR, Sina/Kosh, CGNS, libz, DB2, Matio
|Low||||
|===

Binary file added docs/software/analysis/doe.xlsx
Binary file not shown.
25 changes: 25 additions & 0 deletions docs/software/analysis/exama-software-analysis.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
= PEPR NumPEx Exa-MA Software analysis
Exa-MA
v1.0 2023-05-31
:toc: macro
:doctype: book
:title-page:
:title-page-background-image: image:media/digital-background.png[]
:title-page-background-color: #000000
// :title-logo-image: image:media/logo-csmi.png[top=25%,align=center,pdfwidth=2in]
:sectnums:
:toc: left
:toclevels: 2
:icons: font
:icon-set: fab

[.metadata]
{author} -- version {revnumber}, {revdate}

== Introduction

== Doe Software Analysis

This section describes the software analysis for the DOE Stack for the Exa-MA project.

include::doe-analysis.adoc[]
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
51 changes: 51 additions & 0 deletions docs/software/analysis/ressources/themes/pdf-theme.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
extends: default
title-page:
background-color: #666666
font-size: 18
font-color: '#000000'
header:
height: 0.55in
line-height: 1
border_color: dddddd
border_width: 0.25
background-image: #image:../../media/logo-csmi.png[fit=scale-down,position=right]
recto:
center:
content: 'PEPR NumPEx - Exa-MA -- v{revnumber}, {docdate}'
verso:
center:
content: $header-recto-center-content
footer:
# background-image: image:../../media/logo-csmi.png[width=0.5in] image:../../media/logo-unistra.png[width=0.5in]
background-image: #image:../../media/logo-unistra.png[fit=scale-down,position=right]
height: 0.65in
line-height: 1
recto:
left:
content: '{section-or-chapter-title} | {page-number} of {page-count}'
verso:
left:
content: '{page-number} of {page-count} | *{chapter-title}*'

font:
catalog:
merge: true
UnistraA:
normal: UnistraA-Regular.ttf
bold: UnistraA-Bold.ttf
italic: UnistraA-Italic.ttf
bold_italic: UnistraA-BoldItalic.ttf
UnistraB:
normal: UnistraB-Regular.ttf
bold: UnistraB-Bold.ttf
italic: UnistraB-Italic.ttf
bold_italic: UnistraB-BoldItalic.ttf

heading:
font-family: UnistraB
font-style: bold
#base:
# font-family: UnistraB
# font-style: normal
h2:
font-color: '#da3131'

0 comments on commit 722841e

Please sign in to comment.