JARVICE requires Internet Explorer 10 and 11 on Windows, as well as the latest versions of Chrome and Firefox on all platforms. While other browsers may work, please use a supported web browser to ensure the best experience possible.
Signing up for Service
Please visit the JARVICE Platform Sign-up page to create your user account. You will need to provide your full name and a valid email address to start the process. JARVICE will send you a confirmation email to the address provided. Click on the link in the email to complete the registration and create your account.
Logging into JARVICE
Once you’ve created your account, visit the JARVICE Platform Login page to log in to your dashboard and start using the platform. If at any time you forget or would like to change your password, simply click the Forgot Password? link at the bottom to reset it.
Uploading and Downloading Data
Nimbix provides you with up to 1 terabyte (TB) of free data storage for your compute jobs in a service called drop.jarvice.com. You can upload and download your data at any time whether you are running jobs or not, via the Secure FTP protocol (SFTP) and or using our Nimbix File Manager over HTTPS. Please note, it’s best to use SFTP for large file transfers, i.e. anything over 100gig.
Using the Nimbix File Manager, to move data over HTTPS
In order to use the Nimbix File Manager, please follow the quick and easy steps below.
- Login to the portal at https://platform.jarvice.com.
- Click “Compute” in the top navigation bar.
- Scroll down to and click “Nimbix File Manager”.
- This will expand the application drop down. Click on “File Manager”.
- This will take you to a “Task Builder” screen. At this point unless instructed otherwise, please take all of the defaults, and click the green “Continue” button.
- After you click the “Continue” button, this will bring you to a “Confirm job submission” screen. Please click “Submit”.
- After clicking “Submit”, you see a “Job submission response”. Please click “Ok”.
- Once this is done, you’ll be returned to your Dashboard. After a few seconds, you’ll see a new job titled “Nimbix File Manager: filemanager”, please click on this next.
- Once you’ve clicked on this, you’ll now want to click on the green “Connect” button.
- A new browser window will appear, asking for a password. You’ll notice that user nimbix is already filled in. To get your password for the File Manager, click back to your Dashboard tab and click “Click to show” for your password.
- Once you have your password, paste this back into the File Manager browser tab, and click the arrow pointing right.
- At this point you should now see the content of your /data folder. At this point you can now drag and drop files and folder from your local machine to your /data, aka drop.jarvice.com.
Once you’re done moving data, you can go back to your Dashboard and click the “Shutdown” button, to stop the File Manager.
Using SFTP to move data
The popular (free) FileZilla client is recommended if you are using a Windows or Mac computer. Please be sure to download the client (from the above link) and not the server. If you are behind a corporate firewall, you may need to request OUTBOUND access to port 22 (TCP) from your IT department.
Your SFTP login is the same as the JARVICE login you created when you registered for service. Your SFTP password, however, is your API key, not the password you use to log into JARVICE regularly. To find your API key, log into JARVICE, click your user name at the top right hand corner, and click Account Settings from the drop down menu that appears. You will see a long string of hexadecimal digits in the “API Key” field. You can copy those to your clipboard and paste in the SFTP client password prompt. Be sure to copy/paste the digits only, without any leading or trailing white space. One you have your user id and API key ready, please point your favorite SFTP client to drop.jarvice.com. You’ll want to make sure in your client that you specify port 22, which is used by SFTP. You can also change your API key at any time by clicking Edit at the top of the Settings box and then clicking Regenerate Key.
Authorizing Other Users (Managing a Team)
If you would like to invite other users to run jobs on the Nimbix Cloud using your payment terms and application licenses, you can click on your account name at the top right hand corner, then Settings. Click the Team link on the right. From here you can invite users by clicking the Add button and entering their names and email addresses. You can remove users at any time, but note that this does not stop jobs they are currently running. If you need additional help with this, please contact Nimbix Support at any time.
Once team members complete their registration, you can see team billing statistics on the dashboard, and run either summary or itemized billing reports showing activity for the entire team at any time.
Ready to run Workflows
Selecting Workflows or Applications
Nimbix is constantly updating The JARVICE application catalog with new workflows and applications, both free and commercial. Once you log into the portal, you can access this catalog by clicking Compute at the very top of the page next to Dashboard. Once there, you can sort by application category as well as applications that require leased licenses versus ones you can run on demand. For licensed applications, you should contact Nimbix Support to connect your license server or key to your account.
Clicking on an application will expand a menu of “commands”. Commands typically correspond to specific workflows. Once you click on the command you want to run, you’ll be brought to the Task Builder. Here you will enter required and optional parameters in a workflow-specific context. If the workflow requires data, you will be able to select input file(s) from your drop.jarvice.com account directly in the Task Builder.
Once you finish entering your parameters, click the green Continue button at the bottom of the page. This will bring up a confirmation dialog where JARVICE shows you what API call it will make to the cloud. Click Submit to submit the job. Once the submission completes, you will get a pop up window with some the job name and job number – click OK to dismiss it and return to the Dashboard.
Jobs immediately enter a Submitted state. This means the platform accepted the job submission and is in the process of allocating the appropriate resources to it. If the resources are not immediately available, the job will queue (remain in the Submitted state) until the resources become available *. Billing does not start until the job moves to Processing state, at which point you are billing for compute time at the rate shown in the Task Builder when you constructed the workflow. Nimbix bills by the fractional minute, so you are not billing for a complete hour if you run for less time than that.
* If you prefer not to have jobs queue and start automatically at a later date, you can click on the job and click the Abort button.
Connecting to, Monitoring, and Controlling Jobs
Once a job is running (in Processing state), you can simply click on the blue text link that describes the application and command you selected to expand the actions for it. Click the Help button on the right for workflow-specific help. If you see a green connect button, this will open the user interface for the workflow in your browser. You can terminate jobs immediately with the Abort button, or shut them down gracefully with the Shutdown button. Some workflows may display an Actions menu that has job control actions specific to the application running. The Output button will show you the job “console”, which in the case of batch jobs is how you generally monitor progress.
At any time while the job is running, you can access drop.jarvice.com via SFTP (as described above) to access the data it is producing.
This section is for developers looking to either implement or integrate custom applications not available as ready to run workflows in the JARVICE application catalog. The assumption is that you are proficient in working with Linux and Linux applications from this point forward. If you have a specific catalog application that you believe Nimbix should support for you, please contact Nimbix Support with details on that application.
Creating Application Images
Application images are linux installations that also contain application code and required dependencies. Nimbix supports 2 flavors of images: CentOS and Ubuntu.
To create an image, click the Images tab, then click New. You can choose the template and select a name for the image. Templates generally provide full graphical capabilities and are loaded with developer tools such as CUDA. Creating a new image actually makes a copy of the template that you can then make modifications to locally. This operation happens in the background and your new image will appear in the Images tab when complete. This does not launch an instance of the image – it merely creates an image in your image store. You can have up to 10 images at any time in your image store. Each image can be up to 100GB in size. If you need more than 10 images for any reason, or need to increase the size of an image, please contact Nimbix Support.
Instances of images on JARVICE are called Nimbix Application Environments (NAEs), or Environments for short. Environments may actually span multiple compute nodes, and actually run as jobs in the platform’s workflow engine. Once you’ve created an image, you can launch an environment on a specific machine type at whatever scale is supported on those resources using the Launch tab.
Staging vs. Release Images
All images have a Staging “version” when created and throughout their entire life span. In revision control terms, this is the “HEAD” of the image. You can make a Release image from a Staging image at any time by using the Release function in the Images tab. This creates a “tag” in the HEAD of the image that you can later launch ephemeral environments from. JARVICE allows only one Release per image, so re-releasing simply moves the tag to the current HEAD. You should never release an image while there is a Staging environment of it in Processing state, as this can lead to a corrupted release. You can however start the Staging version of an image at any time without affecting the latest Release version. In this case JARVICE notes the image as being in the release(*) state in the Images tab. This means the image has been released at least once, but its Staging version (HEAD) has been modified since the last release.
Ephemeral vs. Persistent Images
All staging environments launched on single compute nodes are persistent unless the Ephemeral check box is checked in the Advanced subtab of Launch. This means changes you make to the image while it’s running are automatically saved – there is no need to run any commands or additional mechanisms to persist them. You should take care to properly shut down images (using the Linux poweroff command, the Shutdown button from the Log out menu item inside the graphical environment, or the Shutdown button on the JARVICE dashboard) when finished to avoid leaving the filesystem in an inconsistent state.
If you launch a staging image on multiple nodes (by increasing the machine scale slider), it will automatically launch in ephemeral mode. It is not possible to run a persistent Staging image on multiple computers at the same time. The typical workflow will be to develop and/or integrate on single nodes, then launch on multiple nodes to test at scale. When an image is running in ephemeral mode, any changes made to it are automatically flushed when the environment ends. It is possible to run multiple concurrent ephemeral environments of the same Staging image, but it is not possible to run more than one persistent environment of it at any given time.
Release images are always ephemeral when run in environments, regardless of machine scale selected.
Launching environments does not automatically connect the drop.jarvice.com storage to them. You must do this explicitly by clicking the Storage subtab and selecting it from the list of vaults.
Advanced Block Storage
Nimbix also offers block storage both as single volumes and volume arrays. Single volume block vaults can be encrypted with a customer-known key that Nimbix does not have access to. Block arrays can be used for distributed filesystems such as HDFS, and can be grown both vertically (size per slice) and horizontally (number of slices – scales up and down automatically with machine scale when launching environments). If you are interested in this technology, please contact Nimbix Support to request block storage.
Layout of The Nimbix Application Environment
This directory corresponds to the root filesystem and behaves the same way it would on a physical or virtual machine. The nimbix user account has passwordless sudo access and you are free to install applications in any location on the filesystem.
This directory allows for temporary storage and is automatically flushed at the end of each section. Typically it provides up to 100GB of disk space.
This directory mounts the user data vault, which can either be drop.jarvice.com or a block vault if you’ve requested one. When building applications you should assume all user persistent data lives under /data.
This directory is the nimbix user account home directory, but is only persistent in non-ephemeral Staging environments. Ephemeral or release environments automatically get a clean /home/nimbix when starting up. You should not install any applications in /home/nimbix – instead, use it for compiling applications and then installing from their to their appropriate targets (e.g. in /usr or /usr/local). From a security perspective, this also ensures that any SSH keys or private information is not available when running ephemeral environments of your image (e.g. security keys used for accessing GIT repositories, etc.).
This directory contains generated runtime information files and is entirely owned and controlled by the platform. The nodes file provides a list of compute nodes used in the current environment. The nimbix account has passwordless SSH trust between these nodes automatically. The cores file provides a list of nodes repeated once for every core on each node (e.g. 16 copies of each node name if you launch on 16 core machine type), and is appropriate for use as a machine file argument for MPI applications. You should also use it to calculate how many phyiscal cores are in the environment. The line count of /etc/JARVICE/cores divided by the line count of /etc/JARVICE tells you how many physical cores an application can use.
This directory provides metadata to JARVICE front-ends such as help information, etc. You can modify the files there to change what is displayed to users when clicking the Help button. You can also create an about.html (or about.txt for plain text) that will then cause the portal to render an About button for end users. These files are intended to be application specific, so JARVICE won’t modify them after you create an image.
Running Commands at Image Launch Time
There are two ways to run commands in images: in an interactive way, from /etc/rc.local, or in a “batch” way, from the Command parameter in the Launch tab. By default, /etc/rc.local starts the graphical desktop, but you can modify this to start whatever application you like (including for example a Node.js command if that applies to your application). Users will then connect to the image to access the application (e.g. SSH, VNC, HTTPS, etc.) The graphical desktop takes over HTTPS automatically, so if you instead want that to point to a webserver, be sure to not start the graphical desktop in /etc/rc.local.
To run a batch command, simply put the command line in the Command parameter under the Advanced subtab of Launch. It is generally not recommended that you run in persistent mode if you specify a command. Either select a Release version of the image, or explicitly check the Ephemeral box when specifying a command.
The command you run should start with the full path to the executable you want to start. You should not make any assumptions about PATH – e.g. if the executable is called hello and lives in /usr/local/bin, specify /usr/local/bin/hello at the start of the command. You can pass additional arguments as you would on the shell when launching this command by just specifying them after the executable. Be sure to use \’s to escape special characters as you would on the Linux shell.
The executable you specify in the command parameter runs as user nimbix. If you need specific services started, such as sshd on CentOS, you must start these explicitly in your executable script, as command execution does not perform a full system boot up. (Using passwordless sudo it is possible to run administrative commands such as service from inside your executable).
Once the command is running, you can monitor its standard output and standard error with the Output button for the running job on the Dashboard. The environment automatically terminates when the command does, and if the command returns a non-zero value, the state of the completed job will be Completed with Error instead of Completed.
Adding Custom Applications to the Compute Catalog
Once you have a working Release image and would like to make it accessible either to other users publicly or yourself privately as an application, please contact Nimbix Support and one of our application engineers will help you complete this process. You can also make business arrangements with Nimbix to charge license fees for your application workflows on a per hour basis.
The JARVICE API
In addition to submitting jobs from the web portal at platform.jarvice.com, it is also possible to do this via web service API. The API also allows clients to access further job control, status, and information methods. The API documentation is available directly on api.jarvice.com.
CUDA Developer Environments using Bitfusion Boost
Nimbix and Bitfusion have partnered to bring cost effective CUDA development environments to market. You can find these machine types listed in the Launch tab. If you launch and connect to the graphical environment on a Boost-enabled machine, you can execute CUDA applications directly from the command line as Bitfusion Boost is automatically set up in the environment.
If you want to accelerate a Bitfusion Boost compatible CUDA application from an ssh login, you must prefix your application with bfboost client <application>. The Bitfusion client is automatically configured in the graphical Nimbix Desktop environment, so this prefix is not necessary if you are connected by VNC. The Nimbix Application Environments also provide the latest version of NVIDIA’s CUDA toolkit and are ready for use without any special configuration. CUDA is located in /usr/local/cuda, and there is no need to install the drivers yourself. Simply set CUDA_HOME=/usr/local/cuda if you are building a custom application and run by prefixing your application call with bfboost client <application>. Please note that since there is no on-board GPU in the Bitfusion Boost environments, you will not be able to run nvidia-smi to query GPU information.
The Boost “server” component is built into the JARVICE platform and need not be managed as a separate machine environment. All Boost licenses are also built into the JARVICE platform and orchestrated automatically. The licensing fee is implicit to the hourly machine rate. There is no need to contact Bitfusion in order to get a license or download binaries as Nimbix has has already licensed this software into the JARVICE platform. Code developed in these environments may also be launched on higher end machine types, including K40 and K80 machines (in single or dual GPU configuration), for high performance testing and production workflows.
For more information about Bitfusion and the Boost technology, please visit bitfusion.io.
Getting Additional Help or Providing Feedback
For additional help, please contact Nimbix Support at any time. Our team is standing by 24 hours per day, 7 days per week to assist you.
We are also delighted to hear your feedback on the quality of service, product features, and anything else you’d like to tell us. Please do not hesitate to contact us at any time and we’ll gladly take all your comments into consideration.
Thank you for choosing the Nimbix Cloud, powered by JARVICE!