VPAC offer courses on subjects ranging from code optimisation to advanced parallel programming. These courses are designed to provide the programming skills necessary to use VPAC resources effectively and efficiently.
The following VPAC Courses can be conducted at VPAC or off-site at one of VPAC’s Member Universities:
Introductory, Intermediate and Advanced Linux and HPC courses are delivered by VPAC staff. Course sponsorship is available for staff and students from VPAC Member Universities, however, booking in advance is essential. Researchers from non-Member institutions should contact firstname.lastname@example.org  for information on costs and payment options.
All VPAC courses incorporate both lectures and extensive hands-on sessions. Programming exercises are carefully designed to reinforce concepts and techniques taught in class. VPAC Instructors have strong technical backgrounds and are available for individual consultation, including help with participants' own coding needs, during course sessions. To register for a course please follow the course link for more information and select a session time.
Introductory HPC and Linux Course
The Introductory HPC and Linux course is designed to cater for a wide range of computer skill sets; we'll provide an introduction to VPAC itself, what hardware and software we have installed, how to use our helpdesk system, the Linux environment, secure file transfers, file editing and manipulation, environment modules, and the Portable Batch System (PBS).
After working through the basic operations, and job submission sections, an advanced sections users will be given the chance to work through tutorials where they can submit a simple jobs to the cluster using a molecular dynamics program, NAMD, the statistical package, R, and a finite element analysis and computational fluid dynamics application, Ansys. Each of these will outline and emphasise the basic workflow procedure for submitting high performance computing jobs.
Intermediate HPC and Linux Course
In this course, you will initially learn a little more about VPAC, including its governance, other facilities, and the Client and Application Services department. Following this is an introduction to login files, advanced text-editing with vim, archiving, ownership and permissions of files, and more advanced examples output and command redirections, file manipulation, and program manipulation.
The course will then describe regular expressions, shells and shell scripting, the text manipulation programs sed and awk, resource management in HPC systems, and give further examples of PBS scripts which involve launching multiple jobs. Finally the course will discuss compiling one's own applications, and specifically MPI programs, with comparisons between different compilers on an HPC system.
Advanced HPC and Linux Course
Before attempting this advanced course, familiarity is required with the introductory and intermediate courses. It is essential that the attendee has a working familiarity with C and Fortran as well. It is recommended that users have some revision first, because many of the concepts contained in this course are quite advanced.
In this course, information is initially given about quotas and projects at VPAC. Following this is a review of computer architectures, principles of parallelisation, use of C and Fortran, OpenMPI, MPI functions and datatypes, communicators, messages, deadlocks, use of wildcards, collective communications, profiling, latency hiding, and derived datatypes. A number of programming examples and opportunities for development are provided.
Mathematical Programming : R and Octave
This course provides an introduction to two of the most widely-used mathematical and statistical application and programming languages, R and Octave. It is recommended that the the Introductory Linux and HPC course be completed before undertaking this training.
R is a free software programming language and software environment for statistical computing and graphics. The course will cover an introduction to the environment, assignment and vectors, objects and attributes, factors, matricies and arrays, lists and data frames, files, probability and statistical functions, loops and conditionals, functions, and graphics.
Octave is free software programming language intended for numerical computations with language highly compatible with MATLAB. This course will cover simple matrix mathematics, variables and functions, matrix manipulations, polynomials, linear algebra, loops and conditionals, scripts, plotting and output.
Scientific Programming with C, Fortran, and Python
This course provides an introduction to three of the most widely-used programming languages used in scientific computing; C, Fortran, and Python. It is recommended that the the Introductory Linux and HPC course be completed before undertaking this training.
C and Fortran are procedural and compiled programming languages that enjoy a very wide-use among scientific applications for many decades. In comparison Python is relatively recent, following an object-orientated and interpreted approach instead, but also enjoys significant usage in scientific applications.
The course covers many of the key conceptual issues in programming by a comparison between the three languages with practical, scientific, examples. This includes modes of execution, variable assignment and datatypes, conditional branching and loops in dataflow, programming paradigms, procedures and methods.
Knowledge of the material in this course is sufficient to undertake the Advanced HPC with Linux course.
Tools for Researchers : PostgreSQL, Bazaar, and Make
The purpose of this course is to provide scientific researchers an overview of three toolkits that are useful for their managing their computational research projects; databases, version control, and dependency management with practical examples from PostgreSQL, Bazaar, and Make, respectively.
PostgreSQL is an object-relational database management system which is highly compliant to SQL standards, and thus provides knowledge of other relational databases, functional programming and, through stored procedures, procedural aspects of databases. GNU Bazaar is a distributed revision control system; knowledge of its operations will provide the researcher an understanding of other revision control systems, especially in terms of their revision control and concurrency model. Finally, Make is the most widely adopted dependency-tracking utility which automates the process of compiling code from source to an executable binary, packaging, tests, and deployment.
Lustre Installation and Administration
Lustre is presented at VPAC as a commercial training seminar through our partnership with Whamcloud .
The course is conducted over three days and includes an introduction to the filesystem, designing Lustre clusters, implementation and configuration, client configuration and setip, filesystem backup and restoration, advanced networking, troubleshooting. The course includes interactive lab sessions.
Please note our upcoming training courses  for 2014
For further information regarding any of our training courses, please contact email@example.com  or phone +61 3 9925 4410.