
An Analysis of Distributed Systems Syllabi With a Focus on Performance-Related Topics Cristina L. Abad Alexandru Iosup Edwin F. Boza Eduardo Ortiz Holguin [email protected] [email protected] [email protected] [email protected] Escuela Superior VU Amsterdam Escuela Superior Escuela Superior Politecnica del Litoral Amsterdam, the Politecnica del Litoral Politecnica del Litoral Guayaquil, Ecuador Netherlands Guayaquil, Ecuador Guayaquil, Ecuador ABSTRACT best teaching practices related to them. Addressing this problem, We analyze a dataset of 51 current (2019-2020) Distributed Systems this work identifies and analyzes performance-related topics ina syllabi from top Computer Science programs, focusing on finding popular class of courses on Distributed Systems (DS). the prevalence and context in which topics related to performance The choice of focus on DS courses is not arbitrary. First, DS are being taught in these courses. We also study the scale of the courses appear often in curricula sanctioned by the IEEE/ACM infrastructure mentioned in DS courses, from small client-server guidelines [13]. Other popular IEEE/ACM curricula, on Computer systems to cloud-scale, peer-to-peer, global-scale systems. We make Engineering, Information Technology, and Software Engineering, eight main findings, covering goals such as performance, and scala- also include important DS topics [14–16]. bility and its variant elasticity; activities such as performance bench- Second, among the courses in which performance aspects can marking and monitoring; eight selected performance-enhancing be discussed, Distributed Systems is a good target. DS courses have techniques (replication, caching, sharding, load balancing, schedul- a focus on the system view of the world, which is holistic by na- ing, streaming, migrating, and offloading); and control issues such ture. Distributed systems present naturally a diverse set of levels as trade-offs that include performance and performance variability. and components where performance can be considered, e.g., from multi-node pools of execution threads to massive global-scale de- ACM Reference Format: ployments, from processors to storage and to diverse sensors. Last, Cristina L. Abad, Alexandru Iosup, Edwin F. Boza, and Eduardo Ortiz Hol- guin. 2021. An Analysis of Distributed Systems Syllabi With a Focus on distributed systems have a broad range of performance-aware appli- Performance-Related Topics. In Companion of the 2021 ACM/SPEC Interna- cations, e.g., online gaming, video streaming, public transportation tional Conference on Performance Engineering (ICPE ’21 Companion), April and high-performance scientific processing, so performance aspects 19–23, 2021, Virtual Event, France. ACM, New York, NY, USA, 6 pages. can be explained with prominent and practical examples. https://doi.org/10.1145/3447545.3451197 We analyze 51 current Distributed Systems syllabi from top CS programs around the world and study whether or not they discuss 1 INTRODUCTION issues related to performance in them. Specifically, we seek to At the start of the roaring (twenty-)twenties, higher education faces answer two main questions: (1) To what extent are performance- the important challenge of scaling to unprecedented numbers of related topics being listed in the topic lists of these syllabi? and (2) Do students in Computer Science (CS) and related fields. But scaling is these syllabi include papers that have a strong focus on performance? not the only important goal; equally, higher education must focus Our work complements prior research in Computer Science on how well the students acquire knowledge, skills, and experience education that has looked into performance engineering or teaching relevant to the problems they will face in their professional life. Per- Distributed Systems (Section 2). Closest to our work, is our previous formance is a relevant topic of general importance but with specific study of these DS syllabi [1], where we sought to answer four challenges in CS. Though the WEPPE workshop has published var- questions: What are the most frequent DS course names?, Which ious studies on the design and experience in teaching a standalone topics are commonly included in the syllabi?, Which books and performance course [2, 5, 24], a declining number of curricula in- papers appear in the reading lists?, and, Do DS courses have a arXiv:2103.01858v1 [cs.CY] 2 Mar 2021 clude even a single course focusing entirely on performance [5]. strong theoretical focus? In contrast, this article focuses on the Instead, performance aspects can appear in several courses in the performance aspects of DS courses. curriculum, and especially in computer systems (e.g., [7–9]).1 The Our main contributions in addressing the main questions are: scattered approach hampers identifying common topics and sharing (1) We define a set of research questions to analyze the presence 1Furthermore, the Body of Knowledge of the IEEE/ACM 2013 CS Curriculum Guide- of performance aspects in DS courses (Section 3). We cover lines [13] lists topics and learning outcomes related to performance throughout several common goals in performance engineering, such as improv- of its knowledge areas: Algorithms and Complexity (AL), Architecture and Organi- ing performance and scalability, common activities, such zation (AR), Computational Science (CN), Information Assurance and Security (IAS), Information Management (IM), Intelligent Systems (NC), Operating Systems (OS), as benchmarking and monitoring, and common techniques, such as replication and scheduling. We also look at the scales ICPE ’21 Companion, April 19–23, 2021, Virtual Event, France of systems covered in DS courses, from small (e.g., cluster) © 2021 Copyright held by the owner/author(s). Publication rights licensed to ACM. This is the author’s version of the work. It is posted here for your personal use. Not for to massive (e.g., datacenter) to global (e.g., Internet-scale). redistribution. The definitive Version of Record was published in Companion of the 2021 ACM/SPEC International Conference on Performance Engineering (ICPE ’21 Companion), April 19–23, 2021, Virtual Event, France, https://doi.org/10.1145/3447545.3451197. Platform-Based Development (PBD), Parallel and Distributed Computing (PD), Software Engineering (SE), Systems Fundamentals (SF). (The emphasis on PD is ours.) (2) We present the main results of our data-driven analysis (Sec- from the start in thinking about DS topics. We manually curated the tion 4). We summarize a set of main findings, e.g., that, syllabi and built a table with thirteen fields: Rank, University, Coun- although DS courses cover often performance issues, per- try, Course name, Instructor, Course code, Semester/year, Links, formance itself is not a topic commonly covered by these Topic list, Textbook, other Recommended books, Papers listed as courses. For each question, we quantify the presence of spe- required reading, and Papers listed as optional or recommended cific performance issues among the course topics, and among reading. We refer the reader to the related SIGCSE publication [1]4 the papers proposed as course reading material. for more details on the collection and curation procedure. (3) We make a set of recommendations for the community teach- The present study expands on our prior work by seeking to ing DS, aiming to improve the presence and diversity of per- answer the following, detailed, research questions (RQs): formance topics (Section 5). For example, we recommend RQ1: How frequently (and in what context) is the goal of that performance should be an explicit topic in DS courses. performance mentioned in the topic lists? We search for the string perf in the topic lists and identify the number 2 RELATED WORK of syllabi in which it appears, as well as provide specific Prior historical and recent work on performance education within context in which it is mentioned in the topic lists; for exam- the CS curricula has looked into the design and experience in teach- ple Princeton’s COS 418 Distributed Systems, lists the topic ing courses that focus on performance, like Performance Evalua- “Reasoning about system performance” in its syllabi. tion [23], Analytical Performance Modeling [24], and Performance RQ2: How frequently (and in what context) is the goal of Analysis of Computer Systems and Networks [2]. For a compre- scalability, and its variant elasticity, mentioned in the hensive look at Performance Modeling (PM) courses, we refer the topic lists? We conduct a search similar to RQ1, using the reader to the work of de Nitto Personè, who looked into 75 courses strings scale/scalable/scalability for scalability and elast for on PM in the world and highlighted insights about their approach elasticity. in a talk at WEPPE 2017 [5] and a later technical report [6]. RQ3: How frequently (and in what context) is the activity of Issues about performance could also be added across the curricula performance evaluation mentioned in the topic lists? to courses like Parallel Programming [9], a third-year programming We search for the strings benchmark/test/eval in the topic course [7], and Computer Organization and Design [8]. This paper lists and analyze the results, seeking to determine if issues complements these works by looking into the current practice of related to system performance benchmarking, testing, or teaching Distributed Systems, identifying which issues related to evaluation are mentioned in the syllabi. performance are more commonly being taught. RQ4: How frequently
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages6 Page
-
File Size-