Clemson Home  >  CCIT HomeSkip NavigationA-Z Index    Calendar    CU Safety    Map    Webcams    Phonebook    

Summary and description of courses offered

Introduction to the Palmetto Cluster

Get access to the 76th most powerful super computer in the world. This class offers instructions on how to use the Palmetto cluster at Clemson.

Topics include: Getting access to resources, running serial and parallel jobs, Linux, Bash, PBS, MPI, available software and compilers.

Introduction to Condor

You have heard about Clemson's Condor pool, now try it out. This class offers instructions on the basics of using Clemson's Condor pool.

Topics include: Setting up a Condor client, Submitting jobs, Writing Condor Scripts and ClassAds.

Introduction to OpenMP

As the clock-rate improvements of the CPU circuits started to decelerate, multi-processor architectures and clusters became the main vehicles of keeping the computing power momentum going. It is predicted that soon eight or more processor desktop machines will not be uncommon. At the same time various reports suggest that taking advantage of these new architectures will be slow unless retraining in parallel programming techniques are accelerated. OpenMP programming course aims at meeting this need to so as to take advantage of the new multi-processor computers. Knowledge of either Fortran or C programming is essential.

Topics covered include:

  • Concept of threads, Fork/Join
  • Data: Shared/Private
  • Synchronization
  • Work-Sharing constructs
  • Race conditions and other pitfalls

Introduction to MPI

Today's super-computing inevitably involves tightly coupled clusters of workstations communicating with each other over fast dedicated links in order to tackle a computing task cooperatively. All this requires new computing paradigms for communicating processes using a Message Passing Interface (MPI). Clemson's palmetto cluster is a prime example of such a super computing cluster designed to deliver its power via MPI programming. This course will introduce MPI programming. Knowledge of either Fortran or C Programming is essential.

Topics covered will include:

  • Concepts of communicating processes
  • Messages, message types
  • Point to Point communications, blocking, non-blocking etc.
  • Synchronization, Barriers, Deadlocks
  • Broadcasts, Gather/Scatter, Reductions
  • Groups, Topologies

Unix programming and shell scripting

Many of these topics are essential information for making good use of the palmetto cluster which runs under Linux operating system and accepts jobs written in shell-script.

  • Linux file system concepts, ownership, access rights, sharing documents
  • Redirections, piping output, running processes in the background
  • Batch and Interactive Jobs
  • Submitting/monitoring/cancelling jobs "the job scheduling system"
  • Useful unix/linux utilities , vi, grep, tar, gzip, man, xman etc...
  • Accessing the compilers
  • Shell Basics , Special files: .bashrc .profile .login etc
  • Variables : Reserved, Local, Global, defining, using, manipulation of
  • Passing parameters to scripts, exit codes from scripts
  • Arithmetic operations, aliasing
  • Prompting and Reading from terminal and files
  • Debugging Shell Scripts
  • Tests, Conditional statements, selections, loops

Fortran 95 Programming

Fortran has always been the preferred language of scientific and engineering computing. Although the latest Fortran90 standards have gone towards satisfying some of the needs of the 'Object Orientated' programming community, the main strength of Fortran lies in its ability to translate algebraic and functional description of scientific and engineering problems to a well defined computer program. Recent interests in "Parallel Programming" has also help the continuing popularity of this classic language.

Topics covered will include;

  • Fundamental concepts of procedural programming languages
  • Writing a "good program"
  • Using variables, scalars, arrays, structures, pointers
  • Control Structures
  • Procedures, internal /external, scoping rules
  • Input/Output, file handling, external libraries

C/C++ Programming

This programming language needs no introduction. It started as the language which was used to write the Unix operating system before becoming popular with all computing scientists.

Topics covered will include;

  • Program Structures
  • Data structures, pointers
  • Decision making and loops
  • Memory management
  • File handling

Using Matlab

Matlab is fast becoming one of the de-facto HPC&Grid Scientific
computing software tools. It has a wealth and depth of features to satisfy even the most
discerning researcher as well as plug-in tools for the specialists in various scientific and engineering fields.

Topics covered will include:

  • Introduction to Matlab (Covering: variable types, handling matrices, basic i/o, importing exporting data , basic graphics)
  • Matlab Programming (Covering: Matlab scripts & functions, cell-arrays,structures, program control, script profiling and debugging)
  • Graphics with Matlab (Covering: more plotting, object orientated graphics, 3D plots, animations, building complex graphs, making movies, manipulating and handling bit-images)
  • Graphical User Interface Building with Matlab (Covering: Principles of GUI building, Using GUIDE , using and understanding the call_back functions)



Maintained by CITI web services                    Copyright ©2008 Clemson University, Clemson, S.C. 29634, (864) 656-331