High Performance Computing (HPC) workloads such as predicting weather and genome sequencing utilize neural networks and popular machine learning libraries that require significant computing power and generally run-on coupled nodes that manage their own execution environments. This requires a layered architecture that is always available for exposing supercomputing power shared between different layers to an in house or remote user(s)/endpoint whenever necessary. This results in large waiting queues, unutilized idle times, custom configurations per cluster and ultimately high maintenance costs.
Function as a Service (FaaS) has led to optimized cloud architectures that facilitate heavy workloads while keeping minimal idle times, always available and powerful fault tolerant implementations often coupled with pay as you use models. FaaS has been successfully utilized in designing microservices that power modern web-applications that have proliferated commercial and open-source clouds.
However, HPC infrastructure designed using only FaaS workloads that is available on run time and can perform scientific workloads are limited. In order to explore this area, we design a fully serverless workflow that can allow FaaSification of scientific workloads and evaluate the performance results against a parallel computing setup designed using virtualization technologies. We train and deploy a neural network to classify up to 3000 images of clothing and predict labels with 99% accuracy.
We also explore some opensource implementations that stem from this design.
The repository is not limited to: tensorflow image classification and includes examples for deploying use cases such as data-processing on Apache Openwhisk.
aws-cli
Apache openwhisk
wsk cli
docker
python
TensorFlow
wsk-cli
AUTH=<YOUR UUID>
APIHOST==<YOUR APIHOST>
NAMESPACE=<YOUR NAMESPACE>
wsk property set --apihost <YOUR API HOST> --auth <Your auth code from the Runtime team> namespace <Your namespace from the Runtime team>
aws-cli
region = <region>
output = json
cli-binary-format = raw-in-base64-out
cd ../serverless-hpc
npm install
node index.js
Ashutosh Neupane
[email protected]