|
|
## OSC Overview
|
|
|
|
|
|
#### Clusters
|
|
|
Creating an application to be run on OSC systems will require an understanding of the underlying system architecture. Currently, AweSim web applications are hosted on Web nodes residing on the **Glenn** cluster, and tasks are primarily solved by submitting to nodes on the **Oakley** cluster. Please familiarize yourself with OSC's [supercomputers](https://www.osc.edu/supercomputing/hpc).
|
|
|
|
|
|
#### Login Nodes
|
|
|
|
|
|
Each supercomputer has a small number of nodes set aside as **login nodes**. These nodes are shared among users and are used for non-computationally intensive tasks like system text editing and file management. Much of the modern web development process takes place in a command line environment, and at OSC, that environment is the login node. For additional details, see [Login Environment at OSC](https://www.osc.edu/supercomputing/login-environment-at-osc)
|
|
|
|
|
|
#### File Systems
|
|
|
|
|
|
There are several methods of file storage available to app developers. The primary place where you will be storing and developing applications will be your home directory on the **NFS file system**. This file system is shared, which means that it is available to you across all clusters. There is a storage limit of 500GB available to you in this space and it is considered permanent storage, which means that you can safely store your project files without risk of deletion. For projects larger than 500GB and 1 million files, users can make a request for a **Project Directory**, which is capable of handling more and larger files, but for a fixed term of time. In addition to the shared file systems, each compute node has **local disk** space available for temporary file storage while a job is running. This is accessed from within a running job via the `$TMPDIR` command. Local storage is the fastest way to access files during a compute job, and it is recommended that compute jobs with a large amount of disk I/O requests copy files into the node's local storage when a job begins, and back to the home directory when the computation is finished. Finally, OSC provides a high-performance **Lustre** file system for large read and write operations. This system can be accessed manually at `/fs/lustre/<YourUserName>` or from within a job by using the `$PFSDIR` variable. For more information, see [Available File Systems](https://www.osc.edu/supercomputing/storage-environment-at-osc/available-file-systems)
|
|
|
|
|
|
#### The Batch System
|
|
|
|
|
|
High Performance Computing is performed by requesting resources through the batch system. This involves submitting a script to our scheduler via a `qsub` command. The job is then queued until the requested resources become available. Once it begins, the job then runs until it has completed or the wall time is reached. AweSim apps generally follow this workflow by providing a user-friendly frontend to this process. Job variables can be obtained from a user via a familiar web form and used to complete a job script template. Most of the command line functions you will need to create a Rails application are provided to you via the `pbs-ruby` and `osc-machete` Ruby gems. It is strongly recommended that you understand the underlying process for batch submission and job management. If you are new to the batch system, please review the tutorials provided by OSC at [Batch Processing at OSC](https://www.osc.edu/supercomputing/batch-processing-at-osc).
|
|
|
|
|
|
#### Additional Resources
|
|
|
|
|
|
The Ohio Supercomputer Center offers occasional training workshops and seminars. Please consult the [OSC calendar](https://www.osc.edu/calendar) to learn about upcoming training events.
|
|
|
|
|
|
#### Development: Getting Started
|
|
|
|
|
|
OSC provides Ruby gems and example applications to application developers via a private [Github](https://github.com/) organization. Contact [OSC Help](https://www.osc.edu/supercomputing/support) to gain access to these repositories. In addition to this guide, the official documentation resource for developers can be found at [apps.awesim.org/devapps](https://apps.awesim.org/devapps/) under the 'Documentation' tab.
|
|
|
|
|
|
#### Your Apps
|
|
|
|
|
|
Apps that you create will appear at the top of the developer dashboard at [apps.awesim.org/devapps](https://apps.awesim.org/devapps/). Any apps that you have created will be displayed at the top of this page. During development, your apps should be located under the `awesim_dev` directory of your home folder and individual apps should be developed in folders named `rails1` - `rails9` to function properly from the dashboard.
|
|
|
|
|
|
#### Two ways to build an app
|
|
|
|
|
|
##### 1. Create a new app using a generator
|
|
|
##### 2. Modify an existing application
|
|
|
|
|
|
In both cases, you will want to do your development on our Glenn cluster, which provides the same environment as our web hosting nodes. To get started, open a terminal and issue the following commands to log in to the cluster, navigate to the development path, and load the proper software packages:
|
|
|
|
|
|
$ ssh glenn.osc.edu
|
|
|
$ cd awesim_dev
|
|
|
$ module load ruby
|
|
|
|
|
|
Apps that you create in the `$HOME/awesim_dev/` location are only visible to you on the dashboard. This is the location for developing and testing your Rails/Rack applications to be used in the AweSim environment.
|
|
|
|
|
|
### 1. Building an app using a generator
|
|
|
|
|
|
An AweSim-specific [app template](http://guides.rubyonrails.org/rails_application_templates.html) is available to create a blank Rails application containing AweSim Gems and styles. You can create this application using the Rails generator and adding the path to the template.
|
|
|
|
|
|
$ rails new demo_app -m /nfs/01/wiag/PZS0645/awesim/rails-application-template/awesim.rb
|
|
|
|
|
|
Once the application has been generated, you will need to change the directory name to one of `rails1` - `rails9` so that it will properly load from the dashboard.
|
|
|
|
|
|
$ mv demo_app rails1
|
|
|
|
|
|
The app is now accessible from the dashboard.
|
|
|
|
|
|
Please see the [new app tutorial](Create-a-new-app-with-AppKit-1.0) for guidance on building a new application. |
|
|
\ No newline at end of file |