Skip to content

bttu/Containerization

 
 

Repository files navigation

Containerization Flow for Library and Application on Cloud Vendors

This project provides script to build Docker Application (image) for multiple cloud vendor: Nimbix, AWS and Azure. For now, it only supports Nimbix JARVICE™ platform and on premise.

Background

Docker

Docker is a set of platform-as-a-service (PaaS) products that use OS-level virtualization. Containers allow a developer to package up an application with all of the parts it needs, such as libraries and other dependencies, and ship it all out as one package. For more docker information, please refer to the Docker Documentation.

Nimbix Cloud

JARVICE™

JARVICE is the platform that powers the Nimbix Cloud. Built from the ground up for today’s most demanding workflows, it delivers superior performance, capabilities, and ease of use – whether enabling simulation, cognitive, life sciences, or other applications. For more information, please refer to the The Nimbix Cloud Platform.

PushToCompute™

PushToCompute™ is an advanced developer pipeline that enables you to create, build, and deploy containerized workflows. The JARVICE container runtime is optimized for high performance and accelerated applications, and powers all workflows available in the Nimbix Cloud. For more information, please refer to the PushToCompute™.

Getting Started

To distribute FPGA applications on cloud vendors, you need build docker images contain FPGA app files (like xclbin files) and required metadata. The tutorial mainly contains two parts: prerequisites and buuild application flow.

Prerequisites

Before to build docker image and distribute it to could vendor, you need:

  • Have an account on Docker Hub or your own docker registry. (Create a Docker ID)
  • Create a repository on Docker Hub or your own docker registry.
  • Install and active docker service on your local machine. (Docker install)
  • To distribute app on Nimbix Jarvice platform, you need to have an account on Nimbix Jarvice platform. (If you need Nimbix account, please contact Tianyu Li ([email protected]) or Chuck Song ([email protected]).)

Build application flow

  1. Clone Containerization repository
git clone https://github.com/Xilinx/Containerization.git
  1. Go to Containerization repository
cd Containerization 
  1. Update config.json file to specify all information for your application. See here for all references.

  2. Build image

./containerize.py
  1. Push built docker image

Only need to push docker image if attribute push_after_build is false in post_processors section in config.json. Otherwise the image will be pushed automatically.

docker push $(IMAGE ID)

Reference

Nimbix PushToCompute™ flow

  1. Login to Jarvice platform.

If you need Nimbix account, please contact Tianyu Li ([email protected]) or Chuck Song ([email protected]).

  1. Click tab PushToCompute™ on right menu.

PushToCompute™

  1. Login to docker registry with your docker hub credentials (on top left menu).

Login to docker registry

  1. Click "New" to create a new application

  2. Fill App ID and Docker or Singularity Repository. Then click OK.

Create Application

  1. Click menu icon on your new created app and click Pull then click OK to pull the image.

Pull Image 1

Pull Image 2

  1. If steps go well, you should see Container Pull Response pop window with { "status": "Pull successfully scheduled" }. You can also check pulling status by clicking History under app menu.

  2. After pulling completed, click your new application to launch the job.

Launch app

  1. You can change the application icon by clicking menu icon, then "Edit", then "Change Icon".

FAQ

Q: How could I put readme file on desktop when I launch a Nimbix job?

A: Nimbix launches a job in "Desktop Mode" using "nimbix" as user. It will duplicate folder "/etc/skel" to "/home/nimbix" as user home directory. Therefore if you want to put a readme file on desktop, please mkdir -p /etc/skel/Desktop then set "destination" in "provisioners" section as /etc/skel/readme.txt. Also you can modify /etc/skel/.bashrc to add startup script when you open the terminal.

Useful links

Please check these links for more details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%