CS 431 : Programming Parallel and Distributed Systems


Discussion Board and Mailing List

  • Username: cmpt880_479@googlegroups.com (accept invitiation in your email before beginning to post).
  • SFU Mailing list : cmpt-431@sfu.ca

Creating logins for machines (You would have received email with instructions)

Reservations: Google Appointment Slots (http://cs431.youcanbook.me).

  • Go to reservation calendar .
  • Create new event (You can book only 1hr slots).
  • Specify Group Name or Id.
  • Usage mode: Ex (for timed runs) or Non-Ex (for debugging)

cs-amoeba-n3.cs.surrey.sfu.ca (Need to ssh into head cs-amoeba from which you can ssh into the n1 node)

  • AMD server with 24 cores. 2 sockets; each socket 12 core CPU. Access requires reservation.
  • Has two chips. Each chip has four cores. Each core has private L1 instruction and data caches (64K) and a private L2 cache (512K). The L3 cache is shared among the cores on the same chip 18MB. $ cat /proc/cpuinfo for more details
  • Runs Ubuntu 12.04. Available compilers and gcc. To avail of intel icc: bash$ source /p/amoeba/shared/lib/lib64/intel/stm/bin/iccvars.csh intel64. Only compile on amoeba-head not on the n1 nodes.
  • Performance counter infrastructure : Based on perf stat. We have a 3.2-32 kernel and hence the perf tool will be perf_3.2-32. How to use perf [Slides]

Binding threads/processes to processors

When you run experiments, you'd often want to bind a thread or a process to a particular processor, core or a thread context. Here is the explanation of how this can be done along with some code samples. Another example with pthreads.