Assignment 3: Parallel VLSI Wire Routing via OpenMP

Due: Friday, October 14th, 11:59pm EST

The purpose of this assignment is to introduce you to parallel programming using OpenMP and to illustrate how the realities of parallel machines affect performance. Although the sequential version of the task that you are asked to parallelize is relatively straightforward, there are a number of subtle issues involved in achieving high performance with your parallel code.

Please download the handout from Autolab.

Updates

Sept. 28, 12:24pm: Updated the due date to Friday, October 14th.

Oct. 2, 10:27am: Released the handout(with start code) and a slightly updated writeup. Please re-download the writeup and handout from Autolab.

Oct. 3rd 21:43: There was a small typo in validate.py, please change line 30 of validate.py to:

parsed['cost'] = args[args.index('-c') + 1]

Oct 4th 20:08: To submit your jobs to latedays, you need to log into latedays, and the code directory should be copied outside of the AFS directory. Also, please run make before you run make submit.

Oct 5th 16:58: I just found that the version of python installed in latedays is 2.6.*, and '{}' in format is not supported, please comment out line L54 in validate.py and other lines that uses '{}' in format if you need to.

Oct 7th 14:38: Seems that Autolab is broken. I've uploaded the writeup and handout in Piazza:

Oct 8th 22:09: As a sanity check for output, the reference solution produces the following result for the files in timeinput:

  • easy_4096.txt: Max Cost: 2, Total Cost: 121800
  • medium_4096.txt: Max Cost: 3, Total Cost: 594573
  • hard_4096.txt:Max Cost: 4, Total Cost: 1010274

Try not to be too far away from these costs.

Oct 9th 22:56: Please make sure to run "make clean && make" before you submit to latedays for performance testing, since the cpu version can still run on latedays and we would like to see the numbers on Xeon Phi rather than cpu.

Oct 11th 16:12: As a sanity check for output, the reference solution produces the following result for the files in timeinput:

  • easy_4096.txt: Max Cost: 2, Aggregated Cost: 208-964
  • medium_4096.txt: Max Cost: 3, Aggregated Cost: 11119-11658
  • hard_4096.txt:Max Cost: 3-4, Aggregated Cost: 27501-41383

Where Aggregated Cost means the sum of all values that is greater than 1 in the cost array.