Skip to content

Commit

Permalink
Add readme
Browse files Browse the repository at this point in the history
  • Loading branch information
vladimir-gladkii committed Apr 23, 2024
1 parent 02cd158 commit 52a1c20
Show file tree
Hide file tree
Showing 2 changed files with 83 additions and 6 deletions.
24 changes: 21 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,30 @@ RUN wget https://www.nas.nasa.gov/assets/npb/NPB3.4.2.tar.gz && \
tar -xzvf NPB3.4.2.tar.gz && \
rm -r NPB3.4.2.tar.gz

ENV BENCH_NAME=cg
# You can change BENCH_NAME and CLASS.
# BENCH_NAME:
# Five kernels
# IS - Integer Sort, random memory access
# EP - Embarrassingly Parallel
# CG - Conjugate Gradient, irregular memory access and communication
# MG - Multi-Grid on a sequence of meshes, long- and short-distance communication, memory intensive
# FT - discrete 3D fast Fourier Transform, all-to-all communication
# Three pseudo applications
# BT - Block Tri-diagonal solver
# SP - Scalar Penta-diagonal solver
# LU - Lower-Upper Gauss-Seidel solver
# Benchmarks for unstructured computation, parallel I/O, and data movement
# DT - Data Traffic
# CLASS:
# S: small for quick test purposes
# W: workstation size (a 90's workstation; now likely too small)
# A, B, C: standard test problems; ~4X size increase going from one class to the next
# D, E, F: large test problems; ~16X size increase from each of the previous classes
ENV BENCH_NAME=ft
ENV CLASS=C
ENV PROC_NUM=4

WORKDIR /code/NPB3.4.2/NPB3.4-MPI
RUN cp config/make.def.template config/make.def && \
cp config/suite.def.template config/suite.def
RUN make $BENCH_NAME CLASS=$CLASS
CMD ./bin/$BENCH_NAME.$CLASS.x -np $PROC_NUM
CMD ./bin/$BENCH_NAME.$CLASS.x
65 changes: 62 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,64 @@
# Standard workload
The standard workload for assessing the energy efficiency of a Kubernetes node.
Based on the [NAS Parallel Benchmarks](https://www.nas.nasa.gov/software/npb.html).

## Usage

## Manual build and deployment on Minikube
### Prerequisites
- [Docker](https://docs.docker.com/get-docker/)
- [Helm](https://helm.sh/en/docs/)
- [Minikube](https://minikube.sigs.k8s.io/docs/start/)

### Build and deployment
1. Install [Minikube](https://minikube.sigs.k8s.io/docs/start/).
2. Start Minikube:
```bash
minikube start
```
1. Build a docker image:
```bash
docker build . -t standart-workload:latest
docker run standart-workload:latest
docker push standart-workload:latest
```
```
1. Upload the docker image to minikube:
```bash
minikube image load standart-workload:latest
```
1. Deploy the job:
```bash
helm install standard-workload ./charts/standard-workload
--version 0.1.0
--set image.repository=standard-workload
--set image.tag=latest
```
1. Delete the job:
```bash
helm delete standard-workload
```

## Release
To create a release, add a tag in GIT with the format a.a.a, where 'a' is an integer.
```bash
git tag 0.1.0
git push origin 0.1.0
```
The release version for branches, pull requests, and other tags will be generated based on the last tag of the form a.a.a.

## Helm Chart Versioning
The Helm chart version changed automatically when a new release is created. The version of the Helm chart is equal to the version of the release.

## GitHub Actions
[GitHub Actions](https://docs.github.com/en/actions) triggers testing and builds for each release.

**Initial setup**
Create the branch [gh-pages](https://pages.github.com/) and use it as a GitHub page.

**After execution**
- The index.yaml file containing the list of Helm Charts will be available at `https://glaciation-heu.github.io/standard-workload/helm-charts/index.yaml`.
- The Docker image will be available at `https://github.com/glaciation-heu/standard-workload/pkgs/container/standard-workload`.

# Collaboration guidelines
HIRO uses and requires from its partners [GitFlow with Forks](https://hirodevops.notion.site/GitFlow-with-Forks-3b737784e4fc40eaa007f04aed49bb2e?pvs=4)

## License
[MIT](https://choosealicense.com/licenses/mit/)

0 comments on commit 52a1c20

Please sign in to comment.