Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
education [2019/04/05 16:11] mmonti |
education [2026/08/25 13:26] (current) grizk |
||
|---|---|---|---|
| Line 3: | Line 3: | ||
| ====== Education ====== | ====== Education ====== | ||
| + | \\ | ||
| The lab is teaching the following courses: | The lab is teaching the following courses: | ||
| \\ | \\ | ||
| + | |||
| + | * [[education/ca_2025|Concurrent Computing (CS-453)]] (theory & practice) | ||
| + | * [[education/da_2025|Distributed Algorithms (CS-451)]] (theory & practice) | ||
| \\ | \\ | ||
| - | * [[education/ca_2018|Concurrent Algorithms]] | + | The lab taught in the past the following courses: |
| - | * [[education/da|Distributed Algorithms]] | + | |
| * <html><a href="http://moodle.epfl.ch/course/view.php?id=14044">Information, Calcul et Communication</a></html> | * <html><a href="http://moodle.epfl.ch/course/view.php?id=14044">Information, Calcul et Communication</a></html> | ||
| * <html><a href="http://cowww.epfl.ch/proginfo/wwwhiver/">Introduction à la Programmation Orientée Objet</a></html> | * <html><a href="http://cowww.epfl.ch/proginfo/wwwhiver/">Introduction à la Programmation Orientée Objet</a></html> | ||
| Line 23: | Line 26: | ||
| DCL offers master projects in the following areas: | DCL offers master projects in the following areas: | ||
| - | * **Probabilistic Byzantine Resilience**: Development of high-performance, Byzantine-resilient distributed systems with provable probabilistic guarantees. Two options are currently available, both building on previous work on probabilistic Byzantine broadcast: (i) a theoretical project, focused the correctness of probabilistic Byzantine-tolerant distributed algorithms; (ii) a practical project, focused on numerically evaluating of our theoretical results. Please contact [[matteo.monti@epfl.ch|Matteo Monti]] to get more information. | + | * **[[cryptocurrencies|Cryptocurrencies]]**: We have several project openings as part of our ongoing research on designing new cryptocurrency systems. Please contact [[rachid.guerraoui@epfl.ch|Prof. Rachid Guerraoui]]. |
| - | * **Dynamically Distributed Spatial Indexing**: a project here would consist in studying existing spatial index data structures and algorithms, e.g., simple grids, Quadtrees, R-Trees etc., and how they may be dynamically distributed for indexing a large number of moving objects; please contact [[mailto:benoit.garbinato@unil.ch|Benoit Garbinato]] to get more information. | ||
| + | * **Scalable Distributed Cache Coherency**: The distributed cache coherency problem is a critical challenge in modern computing systems, especially as cloud platforms, large-scale web services, and in-memory data grids become increasingly central to industry. In distributed systems, ensuring that all nodes have a consistent view of shared data, even when copies are cached locally, is essential for correctness and reliability. Without coherent caches, stale reads can lead to data races, inconsistency, and subtle bugs—issues that can severely impact services like Amazon DynamoDB, Google Spanner, or Meta’s TAO graph store, where distributed caching is used at massive scale. Companies like Google and Microsoft invest heavily in research and infrastructure (e.g., Tardis, Azure Service Fabric) to implement scalable, low-latency cache coherence protocols across thousands of machines. Efficient distributed cache coherence not only improves performance and availability but also enables stronger consistency guarantees in systems that underpin everything from real-time recommendations to financial transactions. As systems grow more distributed and memory-centric, solving this problem becomes foundational to scaling modern software infrastructures. However, current distributed cache coherency protocols suffer from excessive communication overhead, limiting scalability. The question is how to offset such an overhead while maintaining the overall protocol's performance. If interested, contact [[https://people.epfl.ch/beatrice.shokry|Beatrice Shokry]]. | ||
| - | * **Multicore computing**: a project here would consist for instance in designing and implementing efficient lock-based or lock-free shared objects; please contact [[https://people.epfl.ch/igor.zablotchi|Igor Zablotchi]] to get more information. | ||
| - | * **Distributed computing using RDMA and/or NVRAM**: contact [[https://people.epfl.ch/igor.zablotchi|Igor Zablotchi]] for more information. | ||
| - | * **[[Distributed ML|Distributed Machine Learning]]** | ||
| - | * **Distributed and Fault-tolerant algorithms**: projects here would consist in designing failure detection mechanisms suited for large-scale systems, real-time systems, and systems with unreliable communication or partial synchrony. This task also involves implementing, evaluating, and simulating the performance of the developed mechanisms to verify the achievable guarantees; please contact [[http://people.epfl.ch/david.kozhaya|David Kozhaya]] to get more information. | + | * **Accelerating Safe ML Systems:** ML has been a hot topic for so long. Now with LLMs, it is getting even more attractive for everyone in the research community as well as industry (e.g., Google, Meta, etc.). In particular, training large models with massive data makes the need for distributed computing (i.e., distributing tasks among machines) non questionable, which leads to two main challenges. First, how to do it fast? Second, how to do it safe (e.g., secure collaborative training, robust ML, etc.)? At the heart of these two challenges is how to communicate with other machines in a fast and a secure way? This leads us to Remote Direct Memory Access (RDMA) technology which is becoming increasingly important in the field of machine learning (ML), particularly for distributed training of large models and handling massive datasets. RDMA enables high-throughput, low-latency data transfers between servers without involving the CPU, which significantly reduces the overhead associated with traditional networking methods. This is crucial for ML tasks that require rapid synchronization and communication among multiple nodes. Now the question is how to use RDMA efficiently to build fast and secure ML systems? If interested, contact [[https://people.epfl.ch/Beatrice.Shokry?lang=en|Beatrice Shokry]] for more information. |
| - | * **Consistency in global-scale storage systems**: We offer several projects in the context of storage systems, ranging from implementation of social applications (similar to [[http://retwis.redis.io/|Retwis]], or [[https://github.com/share/sharejs|ShareJS]]) to recommender systems, static content storage services (à la [[https://www.usenix.org/legacy/event/osdi10/tech/full_papers/Beaver.pdf|Facebook's Haystack]]), or experimenting with well-known cloud serving benchmarks (such as [[https://github.com/brianfrankcooper/YCSB|YCSB]]); please contact [[http://people.epfl.ch/dragos-adrian.seredinschi|Adrian Seredinschi]] for further information. | ||
| - | * **Distributed database algorithms**: a project here would consist in implementing and evaluating protocols that are running in today's database systems, e.g., [[https://en.wikipedia.org/wiki/Two-phase_commit_protocol|2PC]], and comparing them with those protocols that can potentially be used in future database systems; please contact [[http://people.epfl.ch/jingjing.wang|Jingjing Wang]] to get more information. | + | * **Distributed Resource Efficient Inference Engine**: The software stack for running efficient Generative AI inference is tuned for data centers, optimized for uniform, well connected hardware monitored by expert teams. While this is perfect for hyperscalars, many private companies and public institutions of every sizes have raising concerns about privacy and sovereignty, and yet, are unable to deploy their own GenAI software stack. The DCL and its recent spin-off Anyway have developed a distributed inference engine, called "Anyd" to address these issues. Anyd aggregates hardware from different generations and different vendors, connected by any network, into a unified cluster that automatically decides how to use these resources to run inference and handles failures transparently. Projects of this category aim to address the specific challenges that come with the distributed and automatically managed nature of Anyd. Contact [[https://people.epfl.ch/geovani.rizk?lang=en|Geovani Rizk]] for more information. |
| + | |||
| + | |||
| + | |||
| \\ | \\ | ||
| + | |||
| + | |||
| + | \\ | ||
| ===== Semester Projects ===== | ===== Semester Projects ===== | ||
| Line 49: | Line 54: | ||
| If the subject of a Master Project interests you as a Semester Project, please contact the supervisor of the Master Project to see if it can be considered for a Semester Project. | If the subject of a Master Project interests you as a Semester Project, please contact the supervisor of the Master Project to see if it can be considered for a Semester Project. | ||
| - | EPFL I&C duration, credits and workload information are available [[https://www.epfl.ch/schools/ic/education/|here]]. Don't hesitate to contact the project supervisor if you want to complete your Semester Project outside the regular semester period. | + | EPFL I&C duration, credits and workload information are available on [[https://www.epfl.ch/schools/ic/education/master/semester-project-msc/|https://www.epfl.ch/schools/ic/education/master/semester-project-msc/]]. |
| + | |||