Computer Systems Programming

ECE454, Fall 2025
University of Toronto
Instructors: Ashvin Goel, Ding Yuan

    Computer Systems Programming

ECE454 Lab 5 FAQ


Q: Is this lab competitive?

A: Yes.


Q: How should we debug our program?

A: Use the initboard program to generate small images. It will be easier to debug your program using small images. This program generates files with random data. It will be easiest to debug your program using the same image files.


Q: The starter code appears to run GoL on a toroidal world (edges loop around). This is not the usual configuration for GoL. Should we implement GoL for a toroidal world?

A: Yes, please implement GoL for a toroidal world.


Q: The starter has several optional arguments. If I write my code from scratch, do I need to support them?

A: Your code does not need to support the optional arguments. It should run with the required "num_generations inputfile outputfile" arguments. Your code also doesn't need to support the "-" argument for printing to stdout.


Q: If the leaderboard shows a successful grade, does it mean that our code passes the correctness check?

A: Yes.


Q: How do you evaluate the report?

A: We only refer to the report in case we suspect plagiarism.


Q: Is there a GPU on the testing server?

A: No.


Q: Can I use SIMD/avx2 instructions?

A: Yes. But remember that if your C code is structured well, the compiler can often generate SIMD code, so you will have to work hard to beat it.


Q: Can you give us some hints?

A: Here are some suggestions:


Q: Do you have any tips for multi-threading?

A: Here are some suggestions:


Q: What should we do to be competitive?

A: Here are some suggestions: