{"id":389,"date":"2025-04-30T07:53:31","date_gmt":"2025-04-30T12:53:31","guid":{"rendered":"https:\/\/www.podc.org\/podc2025\/?page_id=389"},"modified":"2025-07-03T10:54:59","modified_gmt":"2025-07-03T15:54:59","slug":"workshops-and-tutorials","status":"publish","type":"page","link":"https:\/\/www.podc.org\/podc2025\/workshops-and-tutorials\/","title":{"rendered":"Workshops and Tutorials"},"content":{"rendered":"\n<p>The schedule is tentative and will be updated later.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Monday, June 16<\/h2>\n\n\n\n<h2 class=\"wp-block-heading has-medium-font-size\" id=\"applied\"><strong>Workshop: Advanced Tools, Programming Languages, and PLatforms for Implementing and Evaluating algorithms for Distributed systems (ApPLIED)<\/strong><\/h2>\n\n\n\n<p id=\"applied\"><strong>Time:<\/strong> 08:55 &#8211; 18:00<strong><br>TPC Co-chairs:<\/strong> Wojciech Golab and Andrea Vitaletti<br><strong>General Co-chairs:<\/strong> Amy Babay, Ioannis Chatzigiannakis, and Elad Michael Schiller<br><strong>Website:<\/strong> <a href=\"https:\/\/www.cse.chalmers.se\/~elad\/ApPLIED2025\/\">https:\/\/www.cse.chalmers.se\/~elad\/ApPLIED2025\/<\/a><br><strong>Proceedings:<\/strong> <a href=\"https:\/\/www.cse.chalmers.se\/~elad\/ApPLIED2025\/toc.html\">https:\/\/www.cse.chalmers.se\/~elad\/ApPLIED2025\/toc.html<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading has-medium-font-size\" id=\"verification\"><strong>Tutorial:&nbsp;Machine-Verifying Concurrent Algorithms<\/strong><\/h2>\n\n\n\n<p id=\"verification\"><strong>Organizer:<\/strong> Siddhartha Jayanti (<a href=\"mailto:siddhartha.visveswara.jayanti@dartmouth.edu\" target=\"_blank\" rel=\"noreferrer noopener\">siddhartha.visveswara.jayanti@dartmouth.edu<\/a>)<br><strong>Time:<\/strong> 10:00 &#8211;<\/p>\n\n\n\n<p><strong>Abstract: <\/strong>Concurrent algorithms are intricate and their execution patterns on modern multiprocessors are extremely complex due to scheduling asynchrony, thus machine-certified proofs of their correctness are invaluable in ensuring reliability. This need for formal verification is bolstered by several examples of tragic outcomes due to failure to formally machine-verify concurrent algorithms. In fact, history has shown that the consequences of incorrect concurrent code can be catastrophic: a subtle priority inversion bug in its concurrent code crashed the Pathfinder Rover days after its deployment on Mars and jeopardized the entire multi-million dollar NASA space mission [<a href=\"https:\/\/www.rapitasystems.com\/blog\/what-really-happened-software-mars-pathfinder-spacecraft\" target=\"_blank\" rel=\"noreferrer noopener\">Jones, 2013<\/a>]; a race condition in the Northeast power grid\u2019s energy management system started a cascading electrical outage that affected an estimated 55 million people in eight U.S. states and Ontario, Canada [<a href=\"https:\/\/www.theregister.com\/2004\/02\/12\/software_bug_contributed_to_blackout\/\" target=\"_blank\" rel=\"noreferrer noopener\">Poulsen, 2004<\/a>]; race conditions in the Therac-25 radiation therapy machine caused it to administer radiation doses that were over a hundred times as potent as the intended dose, which caused the deaths of at least three people and several more injuries [<a href=\"https:\/\/ieeexplore.ieee.org\/document\/274940\" target=\"_blank\" rel=\"noreferrer noopener\">Leveson and Turner, 1993<\/a>;<a href=\"https:\/\/tildesites.bowdoin.edu\/~allen\/courses\/cs260\/readings\/therac.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">&nbsp;Lim, 1998<\/a>]. Examples of errors in published concurrent data structures are also not left wanting [<a href=\"https:\/\/ieeexplore.ieee.org\/document\/1467933\" target=\"_blank\" rel=\"noreferrer noopener\">Colvin and Groves, 2005<\/a>;<a href=\"http:\/\/www.mcs.vuw.ac.nz\/research\/SunVUW\/Publications\/doherty-msc.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">&nbsp;Doherty, 2003<\/a>].&nbsp;These fatal bugs all point to the importance of machine-verification of intricate concurrent algorithms, like the concurrent data structures we design in the distributed computing community.<\/p>\n\n\n\n<p>Last year, we introduced&nbsp;<em>meta-configurations tracking\u2014<\/em>a&nbsp;<em>forward reasoning<\/em>&nbsp;proof method that aids in producing machine-certified proofs of linearizability [Jayanti et al., POPL 2024]. Meta-configurations tracking is&nbsp;<em>sound,<\/em>&nbsp;<em>complete,<\/em>&nbsp;and&nbsp;<em>universal<\/em>, meaning that it can be used to produce a proof of linearizability for&nbsp;<em>any correct data structure<\/em>&nbsp;implementation of&nbsp;<em>any type<\/em>\u2014including so-called future linearizable and far-future linearizable implementations which have traditionally been considered very hard to prove by the formal methods community. For example, we have used meta-configurations tracking to produce machine-certified proofs of Herlihy and Wing\u2019s queue [Herlihy and Wing, 1990], MemSnap [Jayanti, Jayanti, and Jayanti, 2024], and Jayanti and Tarjan\u2019s set union object [Jayanti and Tarjan, 2016]. The last of these is deployed in Google\u2019s open-source graph-mining library and enables \u201cshared memory parallel clustering algorithms which scale to graphs with tens of billions of edges\u201d. Our work received a Google Code Health Platinum Award&nbsp;for&nbsp;<em>Formal Verification of Multiprocessor Algorithms that Underlie Large-Scale Clustering<\/em>.<\/p>\n\n\n\n<p>In this tutorial, I will explain the&nbsp;<em>meta-configurations tracking&nbsp;<\/em>method for producing formal proofs of the linearizability of concurrent objects. I will also explain how to deploy the method to produce machine-certified proofs using TLA+ (temporal language of actions) and TLAPS (TLA+ proof system). Two goals of this tutorial are: (1) to introduce more members of the distributed computing community to formal methods and machine-verification; and (2) enable concurrent algorithmists to machine-verify their own data structures.  The tutorial is designed to be accessible to a wide-audience in the distributed computing community.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Friday, June 20<\/h2>\n\n\n\n<h2 class=\"wp-block-heading has-medium-font-size\"><strong>Tutorial: Information Theory and Applications<\/strong><\/h2>\n\n\n\n<p><strong>Organizer:<\/strong> Rotem Oshman<br><strong>Time:<\/strong> 09:00 &#8211; 15:00<\/p>\n\n\n\n<p><strong>Abstract:<\/strong> The tutorial will cover the basics of information theory, including Shannon entropy and KL divergence, and their relationship to lossless coding. Using these tools we will tackle several communication complexity lower bounds and applications in distributed computing, such as the linear lower bound on the randomized communication complexity of set disjointness, and the lower bound of Izumi and Le Gall&nbsp;on listing triangles&nbsp;in CONGEST.<\/p>\n\n\n\n<p><strong>Tentative Schedule<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>09:00 &#8211; 10:30: Shannon entropy, KL divergence and mutual information<\/li>\n\n\n\n<li>10:30 &#8211; 11:00: Coffee break<\/li>\n\n\n\n<li>11:00 &#8211; 12:00: Set disjointness lower bound<\/li>\n\n\n\n<li>12:00 &#8211; 14:00: Lunch<\/li>\n\n\n\n<li>14:00 &#8211; 15:00: More applications<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The schedule is tentative and will be updated later. Monday, June 16 Workshop: Advanced Tools, Programming Languages, and PLatforms for Implementing and Evaluating algorithms for Distributed systems (ApPLIED) Time: 08:55 &#8211; 18:00TPC Co-chairs: Wojciech Golab and Andrea VitalettiGeneral Co-chairs: Amy Babay, Ioannis Chatzigiannakis, and Elad Michael SchillerWebsite: https:\/\/www.cse.chalmers.se\/~elad\/ApPLIED2025\/Proceedings: https:\/\/www.cse.chalmers.se\/~elad\/ApPLIED2025\/toc.html Tutorial:&nbsp;Machine-Verifying Concurrent Algorithms Organizer: Siddhartha Jayanti &hellip; <a href=\"https:\/\/www.podc.org\/podc2025\/workshops-and-tutorials\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Workshops and Tutorials&#8221;<\/span><\/a><\/p>\n","protected":false},"author":27,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-389","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.podc.org\/podc2025\/wp-json\/wp\/v2\/pages\/389","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.podc.org\/podc2025\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.podc.org\/podc2025\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.podc.org\/podc2025\/wp-json\/wp\/v2\/users\/27"}],"replies":[{"embeddable":true,"href":"https:\/\/www.podc.org\/podc2025\/wp-json\/wp\/v2\/comments?post=389"}],"version-history":[{"count":28,"href":"https:\/\/www.podc.org\/podc2025\/wp-json\/wp\/v2\/pages\/389\/revisions"}],"predecessor-version":[{"id":655,"href":"https:\/\/www.podc.org\/podc2025\/wp-json\/wp\/v2\/pages\/389\/revisions\/655"}],"wp:attachment":[{"href":"https:\/\/www.podc.org\/podc2025\/wp-json\/wp\/v2\/media?parent=389"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}