Credited Courses

Last updated August 28, 2026

The Center for Advanced Research Computing (CARC) offers TAC 450, a 2-unit Technology and Applied Computing (TAC) course through the USC Viterbi School of Engineering. The class runs in the fall semester only. Through lectures, interactive hands-on sessions, and a team project, students learn how to apply modern tools and technologies in high-performance computing, machine learning, and deep learning to solve real-world science and engineering problems while working with CARC computing resources.

1 TAC 450: Advanced Computing in Applied Machine Learning

Item Details
Units 2
Term Fall semester
Meeting pattern 50 minutes each on Tuesdays and Thursdays
Instructors Byoung-Do Kim, Hao Ji, and Iman Rahbari
Prerequisites / background TAC 359 or TAC 449, or equivalent alternative coursework or experience

2 Course Description

This course introduces theoretical and practical approaches to advanced computing methods in applied machine learning. Students build experience with modern high-performance computing systems, GPU-enabled Python tools, deep learning libraries, and cloud-based machine learning workflows.

Students use CARC systems to run hands-on examples, build deep learning workflows, compare CPU and GPU performance, and apply course concepts to science and engineering datasets.

Students work on one team project with three to four members. For the team project, students use computing resources at CARC to analyze real-world datasets, provide insights, and present descriptive or predictive models to the class.

3 Learning Objectives

After completing this course, students should be able to:

  • Explain the hardware and software components of an HPC cluster and how to use them effectively.
  • Compare CPU and GPU architectures and identify which is more suitable for a given workflow.
  • Develop Python code using CUDA-enabled libraries for data analysis and machine learning tasks on GPUs.
  • Explain fundamental deep learning concepts and implement them in Python using libraries such as PyTorch.
  • Use HPC systems to solve real-world science and engineering problems.
  • Demonstrate an understanding of cloud infrastructure, including AWS services used for data analysis and deep learning workflows.

4 Intended Audience

This course is intended for students who already have a foundational understanding of Python programming and data analysis and want to use high-performance computing to solve real-world problems.

Example application areas include autonomous driving, image classification, predictive maintenance, research data analysis, machine learning with GPUs, and large-scale datasets.

5 Course Topics

  • HPC cluster architecture, including compute nodes, interconnects, storage, schedulers, and data transfer tools.
  • Connecting to CARC systems with OnDemand and setting up computational environments with Conda, JupyterLab, and PyTorch.
  • Parallel computing concepts and their role in machine learning workflows.
  • Deep learning and neural networks with PyTorch.
  • Image classification, transfer learning, fine-tuning, and TensorBoard.
  • GPU architecture and GPU-accelerated Python workflows with CuPy.
  • GPU data analysis and machine learning with NVIDIA RAPIDS tools such as cuDF and cuML.
  • Natural language processing, transformer architecture, attention mechanisms, and large language models.
  • Computational costs of training and fine-tuning large language models.
  • Multi-GPU training with distributed data parallelism and model parallelism.
  • Cloud computing concepts and machine learning workflows with AWS SageMaker.
  • Team project work using real-world datasets and CARC computing resources.

6 Tools and Software

Students may use a combination of CARC systems and common research computing tools, including:

  • Linux command-line tools
  • Slurm
  • OnDemand
  • JupyterLab
  • Conda
  • Python
  • PyTorch
  • CUDA-enabled Python libraries
  • CuPy
  • NVIDIA RAPIDS
  • AWS SageMaker

The Technology and Applied Computing (TAC) program, formerly known as the Information Technology Program (ITP), is part of the School of Advanced Computing within the USC Viterbi School of Engineering.

Interested students should visit the USC Viterbi School of Engineering TAC page and the USC registration system for current course information.