From Documentation
Jump to: navigation, search

SHARCNET has been a leader in providing HPC training and education for over a decade. We are pleased to be able to make this expertise available to industry and have tailored a number of courses and workshops more specifically to the requirements of enterprise.

Consulting services are also available.

Inquiries should be directed to

HPC-1: High Performance Computing in the Enterprise

Description High Performance Computing (HPC) is a broad term that covers a wide variety of technologies, across a continuum of scale from the humble desktop PC to massive clusters made up of thousands of processors connected by high speed networks. This course is intended to provide basic literacy in technologies applicable to the enterprise environment, together with an introduction to the core tools and development environments needed to leverage them. At the conclusion of the course, attendees will have knowledge of a range of common parallel computing architectures and programming models that can be readily used in an industrial setting, in most cases making use of hardware infrastructure that you already posses. Performance, scalability and cost-effective solutions are more prevalent than you may know, and this course can help you unlock the power hiding in your enterprise infrastructure, or available to you with very attractive price/performance ratios.

Topics will include a survey of common parallel architectures (shared memory, threading and multi-core, clustering, GPU), setting up batch-queuing systems that can run jobs when machines are idle (e.g. HTCondor, Xgrid), design patterns for parallel programming, pthreads for multi-core environments, GPU programming (CUDA, OpenCL) and an introduction to clustering. Programming topics are presented in an overview and "cookbook" format maximizing the ability for experienced serial programmers to leverage these skills immediately, while providing sufficient perspective to allow the programmer to broaden their knowledge independently as their level of sophistication increases. Hands on exercises are designed to develop and cement the attendees understanding of the key programming/design/API issues. Note: given advanced planning, content can be customized to best suit the resources available to the attendees.

Format Multi-day intensive workshop.
Background Basic literacy with computing hardware, reasonable experience in programming in a serial or traditional threaded (i.e. Java) environment.

HPC-2: Cluster System Administration

Description Leverage SHARCNET’s vast experience in the design, assembly and deployment of cluster solutions for high performance computing. HPC places unique demands on your data centre and managing it requires knowledge of available management tools and workflows that are proven effective. The requirements and challenges in successfully managing high performance computing hardware can be quite different from what you are used to. Learn what works from one of the largest academic consortium in the country.

This course addresses the basic issues of how to perform system administration for cluster (or other HPC) environments. Topics will include staffing requirements, software installation and maintenance, checkpoint/restart policies, back-up/networking issues, UPS, power and cooling considerations.

Format Multi-day intensive workshop.
Background Reasonable experience with conventional system administration.

HPC-3: Leveraging Software for High Performance Computing

Description SHARCNET staff has experience with the application of a wide variety of software packages in an HPC environment. Courses can be prepared “on-demand” for these software packages, which can range from introductory seminars, to advanced usage and appropriate application to HPC solutions.

Topics can include:

  • shell programming
  • traditional programming languages (C, C++, Fortran)
  • special purpose languages/tools (MATLAB, R, OCTAVE, LAPACK, etc.)
  • parallel debugging
  • parallel application programming (MPI, OpenMP, ScaLAPACK)
Format Varies: half day lecture format to multi-day intensive workshops.
Background Varies: none to basic experience with a given package.

HPC-4: Introduction to Open Source and Free Software

Title Introduction to Open Source and Free Software
Description Linux and other open source/free software (software libre) systems are pervasive in the HPC world. The IP concepts and associated development models underlying these pieces of software differ radically from that of traditional commercial programs. Nonetheless, companies such as IBM, Google and RedHat have made them a cornerstone in their business and leveraged them to great advantage.

This course will introduce the open source/free software model and discuss how the aforementioned businesses have incorporated it. Particular attention will be given to discussing the most common open source/free software licenses (e.g. BSD, GPL and LGPL), their advantages and disadvantages, and understanding the associated rights and responsibilities as compared to more traditional licenses.

Format Single day lecture format followed by a question and answer period.
Background None.

HPC-5: Purchasing a Cluster

Description SHARCNET staff share some of the experience gained in purchasing/running clusters to help you get an idea regarding what things you should be looking for and avoid some common pitfalls. Topics include a discussion of the strengths and weakness of the three basic approaches to HPC: clustering, large shared memory (SMP) systems, and accelerator based systems (e.g. GPU, Cell, FPGA). This will be follwed by a detailed look at the hard fundamentals: the storage, the network, the memory and the processors. Particular attention will be paid to matching the system design and the HPC problem domain. Then the facility requirements/machine room design issues will be addressed: space, power, cooling and room for expansion will be addressed.

Following up from the various hard issues, the focus will switch to the soft. Procuring and evaluating bids: who the big players are, ball-park figures to expect, the relevance of the various warranty and maintenance contracts, and linking back in the prior hardware discussion to understand what parts of the design are critical to the problem domain and which are flexible. Finally, some time will be devoted to discussing the basic staffing requirements needed to run a cluster: the expertise required and the applicability of various industry certifications. Note: given advanced planning, content can be customized to the attendees.

Format Multi-day intensive workshop.
Background Reasonable literacy with computing hardware.

HPC-6: High Performance Computing Solutions

Description High performance computing (HPC) is an umbrella term that covers a variety of standard approaches. It is not a magic bullet that can take any program and make it ten times faster. Not all of HPC solutions are applicable to a problem, and not all problems are amenable to an HPC solution. Learn what standard HPC cluster-, shared memory- and accelerator-based (e.g. GPU, Cell, FPGA) solutions are and to what types of problems they are suitable.

This course specifically focuses on the building blocks (e.g. processing units, memory, network, etc.) from which the standard solutions are built, the various ways in which they are assembled, and the implications of this. The goal is to give attendees an appreciation for the substantial tradeoffs made across the standard solutions, the reason for these tradeoffs, and most importantly the ability to recognize the key aspects of a problem domain that make a specific solution most applicable. Note: given advanced planning, content can be customized to the attendees.

Format Single day lecture format
Background Basic understanding of traditional computer architectures and problem solving (i.e. serial computing algorithms).