Advanced computing teaches must-have skills

Kent Milfeld and Lars Koesterke, instructors for the course Parallel Computing for Scientists and Engineers, stand in front
Kent Milfeld and Lars Koesterke, instructors for the course Parallel Computing for Scientists and Engineers, stand in front of the Ranger supercomputer. Photo: Texas Advanced Computing Center

"I worked as a structural engineer for eight years," said Ben Urick, a mechanical engineering doctoral candidate. "In industry, I understood that I needed to obtain certain advanced computing skills, as that's where the practice of engineering is headed."

"Advanced computing" is a term to describe the practice of using special-purpose, high-end computer systems to solve computational problems in science, engineering and business that cannot be calculated on a typical desktop computer. The phrase also encompasses the special skills required to use these systems effectively.

"Anyone looking to do relevant computational work today in the sciences and engineering must have these skills," Urick said.

To address this fundamental need, the Texas Advanced Computing Center (TACC) created a unique curriculum of courses for undergraduate and graduate students. Offered through the College of Natural Sciences' Division of Statistics and Scientific Computation, undergraduate students can complete coursework to earn a Certificate of Scientific Computation, while graduate students finish a Portfolio in Scientific Computation.

In each course, TACC scientists and researchers teach students the essential skills for advanced computing. All of the courses offered through TACC are counted toward this certification, with one course specified as a core requirement, even if no other TACC courses are taken.

"TACC has some of the finest researchers I've ever met," Urick said. "Having them as instructors for these classes was incredible."

TACC Director Jay Boisseau and senior TACC scientists began crafting short classes at the center to train new employees in the essentials of advanced computing. These courses soon evolved into university courses.

To maintain a personalized instructional environment, classes are limited to 30 students, including both undergraduate and graduate students. The majority of students come from chemistry, biology, computer science, geosciences, mathematics and physics. However, the number of students from the Cockrell School of Engineering is steadily increasing -- mostly from electrical, computer, mechanical and aerospace engineering -- and liberal arts students are beginning to enroll from the economics and government departments, as well.

The program starts with Introduction to Scientific Programming which provides students with the basics of programming in the FORTRAN and C (C++) computer languages, which dominate supercomputing. In the subsequent courses, students advance their programming capability and advanced computing systems knowledge by writing complex codes that run efficiently on supercomputers.

Students say learning from instructors who use the classroom concepts in their research brings a different level of comprehension to the classroom. "We live and breathe on these machines each day, and see all the problems that people have," said Kent Milfeld, a TACC research associate and one of the professors of Parallel Computing for Scientists and Engineers.

The courses integrate instruction, assignments and application, and the professors encourage feedback during every class.

Read the full article on TACC's Web site.