Table of Contents


Lab 2 SPEC


This document is based on lab2-src/README.md, lab2-src/lab2_simd/README.md, and lab2-src/lab2_cuda/README.md. Lab 2 contains two independently graded parallel programming assignments:

Assignment Directory Topic Submission File
SIMD lab2_simd/ SIMD vectorization with sv128 lab2_simd.cpp
CUDA lab2_cuda/ GPU parallel programming with NVIDIA CUDA lab2_cuda.cu

Each assignment grades exactly one source file. Do not split your solution across multiple .cpp, .cu, or .h files, and do not define main() in your submitted file. The OJ uses TA-provided test programs and official build commands for grading.

Important: Accept the New GitHub Classroom Assignment

This course uses GitHub Classroom. Because the original TA source repository and the old student forks are no longer connected, do not use the old lab2 repository for this assignment.


Before starting or continuing Lab 2, accept the new GitHub Classroom assignment:

https://classroom.github.com/a/rGhgx1nD


GitHub Classroom will create a new lab2-new repository for you. Use this new repository for both the SIMD and CUDA submissions. The old lab2 repository will not be deleted, but the OJ will not fetch code from the old lab2 repository.


Recommended local setup:

git clone <your-lab2-new-repository-url>
cd lab2-new-<your-github-id>

If you already wrote code in the old lab2 repository, copy only your solution files into the corresponding paths in the new lab2-new repository, then commit and push from the new repository. Do not rely on git pull or "Sync fork" in the old repository to receive the updated assignment.

Testing and Grading Environment

All assignments are graded on Taiwania 2. You should compile and test your code on Taiwania 2 before submission so that your compiler, libraries, and performance environment match the OJ.

The OJ grading flow is:

  1. Clone your new lab2-new GitHub Classroom repository.