|
Introduction to Computational Science Tools
|
Location: 316 Hammond
Dates/Time: Monday and Wednesday, 3:35 - 4:25 PM
Click here for the Syllabus in Word format.
Instructor and Contact Information:
This semester the course will be taught by members of the High Performance Computing and Visualization Groups, a division of Information Technology Services at Penn State University
| Class Coordinator: | Jeff Nucciarone | e-mail:nucci at psu.edu | Phone: 865.5333 |
| Backup coordinator contact: | George Otto | e-mail:george-otto at psu.edu | Phone: 863.6112 |
Class e-mail for general queries: beatnic@aset.psu.edu
This is a required course for the Graduate Minor in Computational Science. (see also the Spring Course)
Semester Goal:
Upon the successful conclusion of this colloquium students should have an increased awareness of high-performance computing and visualization resources available at Penn State, and the necessary skills to use appropriate hardware and software for problems within their respective disciplines. Successful students will obtain the necessary skills to make informed decisions regarding how to proceed computationally when they need to tackle a class or research project that can benefit from such techniques, as well as information needed for follow-up investigation of specific techniques or resources that may be applicable in their future work.
Outline and Objectives:
Introduction to High Performance Computing Systems at PSU, Overview of hardware at National Labs, Machine Room tour, Comp Bldg Viz systems tour
Historical
development of parallel systems
This section will focus on the
evolution of high performance computing hardware. There will be a
focus on parallel programming paradigms as they fit into
contemporary system architecture. Additionally there will be a
discussion on hardware potential of the future such as the IBM Cell
processor, FPGA and GPU programming.
Click here for a copy of the slides used for this lecture:
Slides
Additonal material on the Peakstream GPU can be read here:
Slides
Assignment 1: Available here
Grid
Computing and Middleware applications
Inter and
intra-institutional collaboration can take many distinct forms. To
provide a consistent and cross-platform method of collaboration,
many developers have turned to web-based applications that provide a
user-friendly front-end to complex computing infrastructures as well
as simple communication tools. Students will be shown at least two
current projects aimed at providing collaboration services and
speeding time-to-results for our researchers. Upon conclusion of
the seminar, students will be able to think through requirements,
strengths, and weaknesses of such a system.
Click here for a copy of the slides used for this lecture:
Grid Computing
Portals
Numerical libraries
Numerical libraries are a powerful way to speed up
application development and run times. In this session students will
be introduced to numerical libraries and their use. Upon conclusion
of this seminar students should be able to understand how to pick
and choose from available libraries and use them in their
applications.
Click here for a copy of the slides used for this lecture: Slides
Assignment 2: Available here
Software
Carpentry
An introduction for
scientific researchers to the 10% of software engineering that will
cover 90% of their needs. The topics addressed are the equivalent of
good laboratory practice, such as
version-control, unit testing, teamware, and quality assurance. The
goal of this seminar is to make students proficient in the use of
these tools.
Click here for a copy of the slides used for this lecture:
Assignment 3: Available here
Profiling / debugging / code optimization
Profile and debug tools will be
discussed as part of this colloquium. Upon conclusion of this
session students should be able to profile their own codes and know
how to use the debugging tools available at many HPC centers. With
program knowledge from profiler output students should also be able
to better apply compiler optimization options and programming
techniques to increase code performance.
Click here for a copy of the slides used for this lecture:
Matlab/Mathematica/Maple
These
three commercial packages will be used to demonstrate their
usefulness in compuations and visualization in this hand on session.
A system of differential equations will be solved using the three
packages so comparisions will be demonstarted. The pros and cons of
each package will be discussed. The parallel versions of these
packages will be outlined. Upon conclusion of this session students
should understand the benefits of using these applications,
visualize the differences among the three packages, and understand
the pros and cons of each.
Click here for a copy of the slides and assignments used for this lecture:
MPI 1
(basics, point to point)
In this session we will cover the
basics of parallel programming using MPI. A simple MPI program will
be discussed to go over the basic topics required to write any MPI
program. Upon conclusion of this sections student should be able to
understand how an MPI program operates, some common pitfalls, and be
able to write a simple MPI program
Click here for a copy of the slides and assignments used for this lecture:
MPI 2
(advanced communication, Jacobian)
More advanced MPI topics
will be presented, such as communication / computation overlap and
collective communication. Students should be able to write more
advanced MPI programs, such as the Jacobian solver, upon conclusion
of this section.
Click here for a copy of the slides and assignments used for this lecture:
Optimization (GAMS/CPLEX)
Optimization
(or Mathematical Programming) refers to the study of problems in
which one seeks to minimize or maximize a real function by
systematically choosing the values of real or integer variables from
within an allowed set. The Optimization Tools (GAMS/CLPEX/COIN-OR)
session will cover the solution of linear (LP), nonlinear (NLP) and
mixed integer (MIP) programming models using commercial (GAMS/CPLEX)
and open-source (COIN-OR) software.
Click here for a copy of the slides and assignments used for this lecture:
Visualization:
Visual Program Editors OpenDX
OpenDX is open source
visualization software that has grown from IBM Visualization Data
Explorer. OpenDX is available from www.opendx.org.
The OpenDX visual program editor allows the development of unique
visualization approaches for a wide range of scientific and
engineering data, without getting bogged down in intricacies of
programming and syntax. With open DX, users build visual progams (or
networks) in which various functional modules are connected within a
dataflow visualization structure, in order to gain more intuitive
insight into phenomena represented or relationships contained in
their data. (www.opendx.org)
Click here for a copy of the files used for this lecture:
Visualization
Programming Toolkits - VTK
The Visualization
Toolkit (VTK) is a flexible, robust, cross-platform and open-source
software system for 3D computer graphics, image processing, and
visualization. VTK consists of a C++ class library, and several
interpreted interface layers including Tcl/Tk, Java, and Python. VTK
supports numerous visualization techniques suitable for a wide range
of disciplines and data types. (www.vtk.org)
Click here for a copy of the files used for this lecture:
Visualization: Using Open Source Visualization Applications with HPC Resources
VMD and Paraview
VMD provides a variety of standard methods for visualization and analysis
of biological systems such as proteins, nucleic acids, lipid bilayer
assemblies, etc., as well as more general molecules via Protein Data
Bank (PDB) files or other standard file formats for storing molecular
data. VMD can be used to animate trajectories intime-series molecular
dynamics (MD) simulation. In particular, VMD can act as a graphical
front end for an external MD program by displaying and animating a
molecule undergoing simulation on a remote computer or cluster.
Windows, Linux and Mac OSX are supported.
ParaView
http://www.paraview.org/HTML/Index.html
is a general purpose scientific data visualization application
designed for scalable visualization of large data sets using compute
clusters or similar HPC systems. ParaView can be run on distributed
and shared memory parallel systems as well as single processor
workstations. ParaView is built on VTK. Windows, Linux and several
Unix variants are supported.
Visual
Molecular Dynamics (VMD) and Paraview are open source applications
for visualization of scientific data. Both combine the ease of use
of a standalone, GUI-based application with the ability to use
remote HPC resources.
Click here for a copy of the files used for this lecture:
Visualization:
Virtual Reality Display and Collaborative Environments
Large
format, 3D stereoscopic and tele-collaborative display environments
may provide unique opportunities for experiential understanding,
analysis and communication of data. In this session we will visit
the Immersive Construction (Icon) Lab in room 306 Engineering Unit C
for a demonstration and discussion of the potential of such
resources for aiding scientific discovery and collaboration, both
locally and among distributed work teams.
Grading
Upon the conclusion of each week's module the instructor will either administer a quiz or work assignment through which you will demonstrate some mastery of the week's topic. The course grade will be entirely based on these assignments.
Exam Policy
There will be no exams as part of this colloquium. Each week the instructor may give a quiz or other assignment upon the conclusion of each week's topic as noted above.
Class attendance
Class attendance is mandatory. Due to the rotation of presenters and topics throughout the semester, much of the information presented in class may not be available elsewhere or at alternate times. Quizzes or assignments missed due to unscheduled absence or leaving a class early cannot be made up. If you know that you will need to miss an upcoming class please contact the class coordinator via e-mail (beatnic@aset.psu.edu) or telephone (814 865-5333) at least one-week prior to the class in question to determine whether alternate arrangements can be made for that session.
Class cancellation
In the event of inclement weather you may check to see if classes are canceled by examining various Penn State resources such as the Penn State Portal (http://portal.psu.edu) or PSU Live (http://live.psu.edu).
Academic Integrity Statement
All submitted work must be your own and not copied in whole or in part from another student or textbook. In addition, all material that is not your own (ideas or words) in papers must be properly cited. If you are not sure how to cite material in your paper, see your instructor. It is your responsibility to avoid plagiarism. Failure to comply with this rule could result in a failing grade and disciplinary procedures.
Penn State University's Definition and Expections: Academic integrity is the pursuit of scholarly activity in an open, honest and responsible manner. Academic integrity is a basic guiding principle for all academic activity at Penn State, and all members of the University community are expected to act in accordance with this principle. Consistent with this expectation, the University's Code of Conduct states that all students should act with personal integrity, respect other students' dignity, rights and property, and help create and maintain an environment in which all can succeed through the fruits of their efforts. Academic integrity includes a commitment not to engage in or tolerate acts of falsification, misrepresentation or deception. Such acts of dishonesty violate the fundamental ethical principles of the University community and compromise the worth of work completed by others.
Notice to students with disabilities
Any student in this course who has a disability that may prevent him or her from fully demonstrating his or her abilities should contact us personally as soon as possible, so we can discuss accommodations necessary to ensure full participation and facilitate your educational opportunity.
You are the [Error Opening Counter File -- Click for more info] visitor since Sept. 5, 2006.
Last modified: Friday, 03-Aug-2007 12:36:01 EDT