CS 431 : Programming Parallel and Distributed Systems


Discussion Board and Mailing List

  • Username: parallel-systems-sfu@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 (You can use cs-amoeba-n2.cs.surrey.sfu.ca for debugging)

Amoeba Calendar

  • 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 14.04. Available compilers and gcc. Performance counter infrastructure : Based on perf stat. We have a 3.5.0+ kernel and hence the perf tool will be perf_3.5.0-45. 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.