Skip to main content

Techniques and Tools to Start with HPC

 

 

ORNL Badged and Interns Only Event

Description

This hands-on event is designed to introduce users with little or no High Performance Computing (HPC) experience to the core concepts and tools necessary to be productive on a Linux environment.

Topics

  • GNU/Linux Commands
  • GIT Control Version
  • Parallelism and OpenMP
  • Python Programming
  • Containers
  • Deep Learning

Who Should Attend

In this workshop, we will conduct introductory sessions on several tools and technologies that are required to begin doing HPC. This workshop is a good starting point for those who want to do HPC for their work. This workshop is intended for those with modest command line experience and are new to using Linux commands to manage files, parallelism, python programming, containers such as docker and version control system, such as GIT.

[tw-toggle title=”Registration“] [/tw-toggle] [tw-toggle title=”Prerequisites“]
Prerequisites
1. Install GNU/Linux on their laptops.
1.1. Get the Virtual machine installation package from:
1.2. Get the iso from:
1.3.You can follow this tutorial:
1.4. Install GNOME on Centos 7
2. Install developer packages such as anaconda 
2.1. Get the Anaconda download in your laptop:
2. 2. Run the Anaconda script:
sudo sh Anaconda3-5.1.0-Linux-x86_64.sh
2.3 Do a test:
source /usr/local/anaconda/bin/activate
source /opt/anaconda/bin/activate
(base) [ ~]$ python -V
Python 3.6.4 :: Anaconda, Inc.
(base) [~]$ which python
/usr/local/anaconda/bin/python
3. Do git installation
    sudo apt install git-all
If you have problems during these steps, please contact us.
[/tw-toggle]

[tw-toggle title=”Agenda“]

Agenda:

9:00 am– 10:30 am           Getting started with basic Linux commands

10:30 am – 11:30 am        GIT basic commands

11:30 pm – 12:00 pm        First look into Parallel Computing

12:00 pm – 1:00 pm          Break for lunch (on your own)

1:00 pm – 2:30 pm            Hands-on into Parallel Computing

2:30 pm – 3:25 pm            Interact with Python for the first time

 3:25 pm – 4:15 pm            Introduction to containers in HPC

4:15 pm – 4:50 pm            Diving into Deep Learning

[/tw-toggle] [tw-toggle title=”Detailed Outline“]

GETTING STARTED WITH BASIC LINUX COMMANDS

Most of the computing clusters at ORNL are supported by the Linux open-source operating system. Linux is a powerful and robust platform that supports projects written in C, Fortran and other programming languages. Starting in Linux development can be daunting and time consuming for those who have not previously developed in a Linux environment. This workshop is targeted to students who have little (or possibly no) previous experience with Linux development. The prerequisite for this workshop is to have a Linux local or remote virtual machine.

Course outline:

  1. Overview 
  2. Essential Commands
  3. The Use of vi
  4. Managing Files Commands

INTRODUCTION TO THE GIT VERSION CONTROL SYSTEM

This is intended to introduce users to version control systems and to one of the more popular version control systems, git.  This covers the importance of version control systems, their history, and the history of git. It also has an interactive hands-on component for creating, manipulating, and interacting with a simple git repository.  Finally, some git-related resources and some simple tips are shared.

Course outline:

  1. The importance of version control
  2. History of version control systems
  3. History of git
  4. Online git tutorial
  5. ORNL’s gitlab sites
  6. Other public git repositories
  7. Tips
  8. Git resources

FIRST LOOK INTO PARALLEL COMPUTING

In today’s world, we have different scales of machines from Raspberry pi to a Summit. In terms of parallelism, the ability to access all the resources possible on a machine is key.  We will be introducing the basic concepts in parallel computing and define concepts that are ambiguous to the machine you’re working on. We will put a couple of these concepts to the test with a few hands-on examples using OpenMP.

Course outline:

  1. What is parallel computing? 
  2. Why do we care?
  3. What is OpenMP?
  4. Hands-on examples:
    Embarrassingly parallel
    Reduction
    Critical/barrier

INTERACT WITH PYTHON FOR THE FIRST TIME

Python is an Object oriented, High-level programming language. Its an interpreted language, i.e. it translates into machine readable format during runtime. Python can be used for Text processing, Numerical processing, Scientific computing, Computer vision applications, HPC and many more. Both desktop and web applications can be developed using Python. Hence, nowadays, it is used as a General purpose programming language. It boosts the application development cycle. This class is a short introduction to Python programming for those who want to start using it for their projects.

Course outline:

  1. Python’s history
  2. C vs. Python
  3. Syntax and Semantics
  4. Basic building blocks of any Python program
    1. Conditional statements, Looping structure, etc.
  5. Introduction to Anaconda python development environment
  6. Write basic Python program in Anaconda

INTRODUCTION TO CONTAINERS IN HPC

Are you interested in running your software on the fastest computers in the world? Perhaps you should attend “Containers in Research,” a 1 hour survey of how cutting edge software development is adapting containerized interfaces, which offer reliable, reproducible, and portable research. In this talk, Ben Liebersohn (GIST Post-Bachelor) will deliver technical and practical insights regarding software containers for research at ORNL.

Course outline:

  1. What is a container?
  2. Why use a container?
  3. How  are containers used?
  4. How  can one make and run a containerized application here at ORNL?
  5. What  remains to be solved?
  6. Q&A

DIVING INTO DEEP LEARNING


Recently, Artificial Intelligence (AI) has been explosively popular. Among the techniques advancing AI, deep learning plays the most important role. In this talk, we will introduce deep learning, focus on computer vision problems, such as object recognition. Specifically, we will explain the model architecture of Convolutional Neural Networks (CNN) in details.

Course outline:

  1. Neural networks: perceptron, gradient descent, activation function
  2. Convolutional Neural Networks (CNNs)
  3. Deep learning framework library 
  4. Brief guide to implementing simple neural networks and CNNs
  5. Cutting-edge research on a computer vision and deep learning
[/tw-toggle] [tw-toggle title=”Slides“]

Intro_Linux(JulitaInca)

[/tw-toggle]

 

Date

Jul 13 2018
Expired!

Time

9:00 am - 4:50 pm

Location

Bldg. 5100, JICS Auditorium
Category

Organizer

Julita Inca
Email
[email protected]
QR Code