Skip to content

Commit

Permalink
Merge pull request #23 from Exabyte-io/add-another-hpc-rewote
Browse files Browse the repository at this point in the history
Add containers-focused HPC rewote
  • Loading branch information
timurbazhirov authored Apr 12, 2022
2 parents be8b6ea + b930341 commit b7cdbbc
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 3 deletions.
5 changes: 2 additions & 3 deletions Cloud-Infrastructure.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,7 @@ The aim of this task is to create a CI/CD pipeline (github workflow) that includ

# Expectations

- The application may be relatively simple - e.g. Linpack, this is focused more on application infrastructure and DevOps, but the tests must actually verify functionality
- Correctly passes the tests in automation and displays coverage metrics
- The application may be relatively simple - e.g. Linpack, this is focused more on infrastructure
- Clean workflow logic

# Timeline
Expand All @@ -23,7 +22,7 @@ We leave exact timing to the candidate. Should fit Within 5 days total.

# User story

As a user of this CI/CD pipelin I can:
As a user of this CI/CD pipeline I can:

- initiate tests for a specific number of scenarios: e.g. 2 nodes, 16 core per node
- select the instance type to be used
Expand Down
44 changes: 44 additions & 0 deletions Containerization-HPC.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Containerization / Benchmarks (HPC)

> Ideal candidate: skilled HPC engineer versed in HPC, and Containers
# Overview

The aim of this task is to build an HPC compatible container (i.e. [Singularity](https://sylabs.io/guides/3.5/user-guide/introduction.html)) and test its performance in comparison with a native installation (no containerization) for a set of distributed memory calculations.

# Requirements

1. A working deployment pipeline - using any preferred tool such as SaltStack, Terraform, CloudFormation - for building out the computational infrastructure
2. A pipeline for building the HPC compatible container
3. A set of benchmarks for one or more HPC application on one or more cloud instance type

# Expectations

- The application may be relatively simple - e.g. Linpack, this is focused more on infrastructure
- Repeatable approach (no manual setup "in console")
- Clean workflow logic

# Timeline

We leave exact timing to the candidate. Should fit Within 5 days total.

# User story

As a user of this pipeline I can:

- build an HPC-compatible container for an HPC executable/code
- run test calculations to assert working state of this container
- (optional) compare the behavior of this container with a OS native installation

# Notes

- Commit early and often

# Suggestions

We suggest:

- using AWS as the cloud provider
- using Exabench as the source of benchmarks: https://github.com/Exabyte-io/exabyte-benchmarks-suite
- using CentOS or similar as operating system
- using Salstack, or Terraform, for infrastructure management
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ Each file represents an assignment similar to what one would get when hired.
| Back-End / Ops | [Parallel Uploader](Parallel-File-Uploader.md) | Python, OOD, Threading, Objectstore |
| CI/CD, DevOps | [End-to-End Tests](End-To-End-Tests.md) | BDD tests, CI/CD workflows, Cypress |
| HPC, Cloud Inf | [Cloud HPC Bench.](Cloud-Infrastructure.md) | HPC Cluster, Linpack, Benchmarks |
| HPC, Containers| [Conteinerized HPC](Conteinerization-HPC.md) | HPC Cluster, Containers, Benchmarks |

## Usage

Expand Down

0 comments on commit b7cdbbc

Please sign in to comment.