Deep-learning

Overview

Deep Learning is a new area of Machine Learning research, which has been introduced with the objective of moving Machine Learning closer to one of its original goals: Artificial Intelligence. Deep learning (also known as deep structured learning, hierarchical learning or deep machine learning) is a class of machine learning algorithms that:[1]

  • use a cascade of many layers of nonlinear processing units for feature extraction and transformation. Each successive layer uses the output from the previous layer as input. The algorithms may be supervised or unsupervised and applications include pattern analysis (unsupervised) and classification (supervised).
  • are based on the (unsupervised) learning of multiple levels of features or representations of the data. Higher level features are derived from lower level features to form a hierarchical representation.
  • are part of the broader machine learning field of learning representations of data.
  • learn multiple levels of representations that correspond to different levels of abstraction; the levels form a hierarchy of concepts.

Deep learning has been characterized as a buzzword, or a rebranding of neural networks.

There have been several python based tools developed to facilitate deep learning, like:

  1. Tensorflow
  2. Theano
  3. PyTorch

With CCC, we have several different resources where you can run your deep learning jobs.

  • you can run Theano and PyTorch jobs in GPUs on the Big Red II research supercomputers at Indiana University and in CPUs(the multi-core version) on the Rivanna cluster at University of Virginia.
  • you can run Tensorflow, Theano and PyTorch on the CS-Clusters (both on GPU and CPUs) at University of Virginia.

Using LAMMPS with CCC

From the GUI

1) Browse to /resources/CCC/queues/. Right click on the appropriate queue you want to submit the job and select create job. The Grid Job Tool will pop-up

2) In the Grid Job Tool, select file/open project and open up pre-stored project (.gjp) file or create your own project file by specifying the job name, input, output and other parameters. Some sample project file are attached at the bottom of this page.

3) Once you have created or modified the project file, select submit job from the file menu option and the job will be submitted to the Queue.

4) you can monitor the progress of the job using Queue manager option on the Queue.

Please refer to the CCC Main page for additional tutorial and information.

Using a wrapper script

The grid / fastgrid commands can be used within a bash script to submit a job to the grid-queue through the command-line interface. So you can use a wrapper script (sample wrapper script attached below) to submit your job(s) from the cli. You can also use the script to do some pre-processing like: copying input to the grid, to monitor the job status and then do some post-processing on it like: copying the output file back to the local machine. You can eliminate the copying back and forth from the grid by exporting some directories on your local machine to the grid, however that would require you to have a Genesis II server running on your local machine.

Sample Project File

Sample JSDL Files

Sample Script to Run the Job

If you have any questions or concerns please feel free to email: mtp5cx@virginia.edu

Reference

[1] Deng, L.; Yu, D. (2014). "Deep Learning: Methods and Applications". Foundations and Trends in Signal Processing. 7 (3–4): 1–199.