Mas­ters Se­mi­nar: Se­lec­ted To­pics in Soft­ware Ana­ly­sis

In this seminar, we will study Software Transactional Memory (STM). STM is a method for synchronizing multiple threads accessing shared memory. It frees the programmer from
the responsibility of ensuring the atomicity of his/her code. He/she can simply
mark blocks as transactions, and the STM then ensures that transactions will
be executed seemingly atomic. It does not necessarily internally execute
these blocks atomically. As the the word "transactions" implies STMs have similarities to databases.

Several correctness properties have been developed for STMs, defining what "seemingly atomic" means formally. To validate these properties several approaches have been designed.

In the seminar we will study papers describing STM algorithms, correctness criteria and validation approaches. Most papers to be read will contain theoretical aspects.

Prerequisite for the seminar is a basic knowledge of databases.

Or­ga­ni­sa­ti­o­nal Is­su­es

Language: The language of the seminar is English, i.e. you will need to give your presentation in English as well as write your report in English.

Important Dates:

  • Preliminary meeting: October 16, 2017, 5pm, O4.267
  • First version of slides: November 17, 2017
  • Your presentation: November 28-29, 2017, 4-6pm each day
                                    November 30,       2017, 8-11am
  • First version of your report: December 20, 2018
  • Peer Reviews: January 5, 2018
  • Final version of your report: January 12, 2018

 Your submissions of slides, reports etc. will have to be handed in via the Koala system.

Registration:

In order to participate, you need to register via PAUL. If more than 10 students are registered, then we will roll the dice at the beginning of the preliminary meeting. You must attend the preliminary meeting! If you miss the meeting or if you are too late and have no medical attestation, we will not allow you to participate in the seminar

 

Exam registration:

Please register during the first exam registration phase (10/23/17 - 11/23/17) for an examination. Otherwise, your participation will not count and you will need to participate in another seminar.

 

Questions:

Questions regarding the seminar are answered by Jürgen König or Arnab Sharma (english only).

Re­qui­re­ments for pas­sing the se­mi­nar

  • give a ca. 30-minute talk and prepare for a follow up discussion
  • written report (ca. 9 pages)
  • active participation in the discussion
  • adhere to the dates and appointments
  • review reports of two other participants

Before the talk, there should have been at least two meetings with your supervisor. More information on this will be given in the preliminary meeting.

Hel­ping ma­te­ri­a­ls

  • Shavit, Nir, and Dan Touitou. "Software transactional memory." Distributed Computing 10.2 (1997): 99-116.
  • Guerraoui, Rachid, and Michal Kapalka. "On the correctness of transactional memory." Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming. ACM, 2008.
  • Guerraoui, Rachid, Thomas A. Henzinger, and Vasu Singh. "Model checking transactional memories." Distributed Computing 22.3 (2010): 129-145.
  • Dice, Dave, Ori Shalev, and Nir Shavit. "Transactional locking II." DISC. Vol. 6. 2006.
  • Spear, Michael F., Maged M. Michael, and Christoph von Praun. "RingSTM: scalable transactions with a single atomic instruction." Proceedings of the twentieth annual symposium on Parallelism in algorithms and architectures. ACM, 2008.