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.
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.
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™ 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™.
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.
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]).)
- Clone Containerization repository
git clone https://github.com/Xilinx/Containerization.git
- Go to Containerization repository
cd Containerization
-
Update
config.json
file to specify all information for your application. See here for all references. -
Build image
./containerize.py
- 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)
- Login to Jarvice platform.
If you need Nimbix account, please contact Tianyu Li ([email protected]) or Chuck Song ([email protected]).
- Click tab PushToCompute™ on right menu.
- Login to docker registry with your docker hub credentials (on top left menu).
-
Click "New" to create a new application
-
Fill
App ID
andDocker or Singularity Repository
. Then clickOK
.
- Click menu icon on your new created app and click
Pull
then clickOK
to pull the image.
-
If steps go well, you should see Container Pull Response pop window with
{ "status": "Pull successfully scheduled" }
. You can also check pulling status by clickingHistory
under app menu. -
After pulling completed, click your new application to launch the job.
- You can change the application icon by clicking menu icon, then "Edit", then "Change Icon".
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.
Please check these links for more details.