Sourcery Overview & Virtual Machine Installation



Similar documents
Scientific Computing Programming with Parallel Objects

HPC Wales Skills Academy Course Catalogue 2015

HPC enabling of OpenFOAM R for CFD applications

The Top Six Advantages of CUDA-Ready Clusters. Ian Lumb Bright Evangelist

BLM 413E - Parallel Programming Lecture 3

Developing Parallel Applications with the Eclipse Parallel Tools Platform

Part I Courses Syllabus

The Fastest Way to Parallel Programming for Multicore, Clusters, Supercomputers and the Cloud.

HPC with Multicore and GPUs

Parallel Programming at the Exascale Era: A Case Study on Parallelizing Matrix Assembly For Unstructured Meshes

Introduction to GPU Programming Languages

Manual for using Super Computing Resources

GPUs for Scientific Computing

Programming models for heterogeneous computing. Manuel Ujaldón Nvidia CUDA Fellow and A/Prof. Computer Architecture Department University of Malaga

Mathematical Libraries on JUQUEEN. JSC Training Course

Core Curriculum to the Course:

PARALLEL & CLUSTER COMPUTING CS 6260 PROFESSOR: ELISE DE DONCKER BY: LINA HUSSEIN

Introduction to Linux and Cluster Basics for the CCR General Computing Cluster

Cluster Scalability of ANSYS FLUENT 12 for a Large Aerodynamics Case on the Darwin Supercomputer

Introduction to GPU hardware and to CUDA

Turbomachinery CFD on many-core platforms experiences and strategies

Multicore Parallel Computing with OpenMP

Introduction to ACENET Accelerating Discovery with Computational Research May, 2015

Parallel Computing with MATLAB

Designing and Building Applications for Extreme Scale Systems CS598 William Gropp

Software Engineering Principles The TriBITS Lifecycle Model. Mike Heroux Ross Bartlett (ORNL) Jim Willenbring (SNL)

Mathematical Libraries and Application Software on JUROPA and JUQUEEN

Applications to Computational Financial and GPU Computing. May 16th. Dr. Daniel Egloff

How to Run Parallel Jobs Efficiently

David Rioja Redondo Telecommunication Engineer Englobe Technologies and Systems

GPU Hardware and Programming Models. Jeremy Appleyard, September 2015

GPGPU acceleration in OpenFOAM

Neptune. A Domain Specific Language for Deploying HPC Software on Cloud Platforms. Chris Bunch Navraj Chohan Chandra Krintz Khawaja Shams

Quick Deployment Step-by-step instructions to deploy Oracle Big Data Lite Virtual Machine

ERIKA Enterprise pre-built Virtual Machine

MOSIX: High performance Linux farm

Debugging in Heterogeneous Environments with TotalView. ECMWF HPC Workshop 30 th October 2014

CS (CCN 27156) CS (CCN 26880) Software Engineering for Scientific Computing. Lecture 1: Introduction

Overview

Berkeley Research Computing. Town Hall Meeting Savio Overview

BIG CPU, BIG DATA. Solving the World s Toughest Computational Problems with Parallel Computing. Alan Kaminsky

Parallel Computing. Introduction

Overview. Lecture 1: an introduction to CUDA. Hardware view. Hardware view. hardware view software view CUDA programming

Data Intensive Science and Computing

ECT362 Installing Linux Virtual Machine in KL322

GASPI A PGAS API for Scalable and Fault Tolerant Computing

Unleashing the Performance Potential of GPUs for Atmospheric Dynamic Solvers

Performance Analysis for GPU Accelerated Applications

A Visualization System and Monitoring Tool to Measure Concurrency in MPICH Programs

ORACLE BUSINESS INTELLIGENCE WORKSHOP. Prerequisites for Oracle BI Workshop

BIG CPU, BIG DATA. Solving the World s Toughest Computational Problems with Parallel Computing. Alan Kaminsky

System Requirements and Configuration Options

A Multi-layered Domain-specific Language for Stencil Computations

Overview of HPC systems and software available within

Accelerating Simulation & Analysis with Hybrid GPU Parallelization and Cloud Computing

Recent Advances in Periscope for Performance Analysis and Tuning

GPGPU accelerated Computational Fluid Dynamics

Quality and Reliability in CFD

Data Centric Systems (DCS)

High Performance Computing

Bachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries

Graphic Processing Units: a possible answer to High Performance Computing?

Scientific Programming, Analysis, and Visualization with Python. Mteor 227 Fall 2015

User s Manual

Masters in Human Computer Interaction

Operating System for the K computer

CET W/32 Application Builder Version 9

Min Si. Argonne National Laboratory Mathematics and Computer Science Division

Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation

Streamline Computing Linux Cluster User Training. ( Nottingham University)

5x in 5 hours Porting SEISMIC_CPML using the PGI Accelerator Model

Applying Design Patterns in Distributing a Genetic Algorithm Application

CIS 3515 Mobile Application Development Instructor:

Integrated Open-Source Geophysical Processing and Visualization

MATLAB in Business Critical Applications Arvind Hosagrahara Principal Technical Consultant

Until now: tl;dr: - submit a job to the scheduler

Robotics & Automation

How To Visualize Performance Data In A Computer Program

Installing (1.8.7) 9/2/ Installing jgrasp

Automated deployment of virtualization-based research models of distributed computer systems

ST810 Advanced Computing

Visual Paradigm product adoption roadmap

NVIDIA CUDA GETTING STARTED GUIDE FOR MAC OS X

Performance Monitoring of Parallel Scientific Applications

Masters in Human Computer Interaction

Instructor Özgür ZEYDAN BEU Dept. of Enve. Eng. CIV 112 Computer Programming Lecture Notes (1)

Transcription:

Sourcery Overview & Virtual Machine Installation Damian Rouson, Ph.D., P.E. Sourcery, Inc. www.sourceryinstitute.org Sourcery, Inc.

About Us Sourcery, Inc., is a software consultancy founded by and for computational scientists, engineers, and mathematicians. We are involved in software development, training, and consulting centered around modern Fortran, including: OpenCoarrays Morfeus Sourcery, Inc., was launched in 2013 through the Entrepreneurial Separation to Transfer Technology program of Sandia National Laboratories.

Sourcery Curriculum Course lengths of 1-5 days (usually 3) with content selected from a menu: Foundation: a narrated evolution of Fortran 77 code to Fortran 2008. Programming Paradigms in Modern Fortran Object-Oriented Programming (OOP) for computational science, engineering, and mathematics. Functional Programming using user-defined operators for asynchronous expression evaluation. Parallel Programming, including Single Program Multiple Data (SPMD) programming via the coarray Fortran (CAF) Many-core accelerator and GPU programming. Mixing CAF and MPI Breaking the bulk synchronization bottleneck with Fortran 2015 CAF EVENTs. Loop concurrency

Sourcery Curriculum (cont.) Software Engineering in Modern Fortran Object-Oriented Design Patterns: best practices for choosing program structure and behavior. Agile development and Test-Driven Development (TDD) Literate programming with documentation generators. Programming by contract, formal design constraints, and runtime assertions. Tools, Libraries and Frameworks: performance tuning, building, testing, documentation generation, reverse engineering of class diagrams, parallel sparse linear algebra. Case Studies Parallelizing legacy Fortran. Mixing Fortran with C/C++. Unit testing.

All Attendees Receive a Multi-Core-Capable Linux Virtual Machine Loaded with Open-Source Software MoFoSoft: modern Fortran code examples and student exercises for use in Sourcery and Stanford Courses. ScientificSoftwareDesign: all codes from the textbook Scientific Software Design: The Object-Oriented Way. GCC 6.0: Fortran, C, & C++ compilers, including support for CAF parallel programming. OpenCoarrays: transport layer using MPI or GASNet communication libraries to support CAF compilers. MPICH, OpenMPI: Message Passing Interface implementations. GASNet: a communication library for Partitioned Global Address Space (PGAS) languages, including CAF (which is part of Fortran 2008) and Unified Parallel C (UPC) PSBLAS: modern Fortran Parallel Sparse Basic Linear Algebra Subroutines for CPUs and GPUs. pfunit: a unit testing framework for modern Fortran. Eclipse/Photran: an integrated development environment (IDE) and refactoring tool for modern Fortran.

Software (cont.) TAU: parallel performance tuning and analysis utilities. CMake/CTest: Cross-platform Makefile generator for automated software building and testing. ForUML: Reverse engineering tool for generating object-oriented design diagrams of modern Fortran codes. ROBODoc: Automated documentation generator. Git: distributed version control. Octave: a MATLAB-like interpreted language for numerical computation and visualization. Doxygen: Automated documentation generator and reverse engineering tool.

Compiler Support Compiler Fortran 2003 2008, 2015 GNU x o Cray x - Intel x - IBM Portland Group (Nvidia) NAG x x x x o supports all Fortran 2003 features employed in our courses supports all Fortran 2008 & 2015 features we employ - supports all Fortran 2008 features we employ & some 2015 features

Virtual Machine Installation 1. Download and install VirtualBox from http://www.virtualbox.org. 2. Launch VirtualBox and select File->Import Appliance and import the SourceryLubuntuYYYYMMDD.ova file*. 3. Double-click the imported file to boot Linux in a window. 4. Log in using Account Name: sourcery student Password: U-Guest-It (Your username is guest ) 5. The sourcery student account has superuser privileges via the sudoers list. 6. The virtual machine contains environment modules for loading and unloading a few of the installed packages, including various versions of GCC, MPICH, etc. Type module avail to see the available modules and see http://modules.sourceforge.net for more details. *If you have less than 12 GB of free storage space on your computer, see the next slide.

For Machines with Limited Storage If you have less than approximately 12 GB of free space on your computer, you can store the virtual disk on a flash drive. The screen shot below shows where to specify the path to the virtual disk: Placing the virtual disk on the flash drive might affect its performance and will require that the flash drive be connected to the computer every time you use the virtual machine.

Sourcery Courses Leverage Modern Fortran s Support for Multiple Programming Paradigms Parallel programming (Fortran 2008 and 2015) Object-oriented programming (Fortran 2003) Mixed-Language Programming (Fortran 2003) Functional Programming (Fortran 95) User-defined, purely functional, asynchronous operators u_t = -(.grad.p)/rho + nu*(.laplacian.u) -(u.dot.(.grad.u)) Distributed objects 00-6

Live Coding Jam Sessions Motivate Modern Fortran Why write pure procedures? - To facilitate optimizations, including vectorization & parallelization. Why use coarrays? - To write parallel algorithms that operate on distributed data. Functional Programming Parallel Programming Why use modules? - To hide information, increase type safety, and document dependencies. Why define derived types? - To encapsulate data and move to a higher level of abstraction. Object-Oriented Programming Why extend types? - To facilitate code reuse and polymorphism. Why use abstract types? - To facilitate design reuse and make code more flexible. Object-Oriented Design Patterns

Sourcery Courses Incorporate Open-Source HPC Tools In this PDE solver, TAU identifies synchronizations as the bottleneck

Sourcery Courses Teach Techniques that Scale to Massively Parallel Platforms 1.00# 0.80# Efficiency( 0.60# 0.40# 0.20# Weak#Scaling# 0.00# 0# 5000# 10000# 15000# Number(of(Images( 87% parallel efficiency in weak scaling on 16,384 cores

We Employ Examples and Hands-On Exercises Relevant to Scientific Programming Starting with stars initially located randomly around a unit sphere with velocities oriented radially outward, we will develop a parallel simulation of the stars motion using a linear drag law: d~x dt d~v dt ~v = 1 [~vwind (z) p m ~v ] p 6 aµ (Tair (z; T0 )) Object-oriented design patterns give us the flexibility to extend our initial code and design. We progressively enhance the simulation s fidelity by adding the option to include fireworks colors, a turbulent wind velocity profile, and variable air properties while offloading much of the new logic to the compiler in the form of dynamic dispatching of algorithms.

Course Attendees Receive a Copy of Scientific Software Design: The Object-Oriented Way http://www.cambridge.org/rouson Textbook for Short Courses at Wright Patterson Air Force Base, SC14, Bettis Atomic Power Laboratory, BP, NASA LaRC, ARL, NRL (DC), NRL (CA), Knolls Atomic Power Laboratory, NASA GSFC, Oak Ridge, SC12, NCAR, NERSC, Hector (UK) 14

Online Tutorials jolts.stanford.edu

Sourcery Short Courses Employ Material Developed for University Graduate Courses Stanford University (2013, 2014) University of Cyprus (2006) 14