mation enables Paradyn to dynamically select which per-mance problems at the lowest system levels, programmers formance data to collect (and when to collect it). The goal must examine low-level problems while maintaining refis for the tool to identify the parts of the program that are erences to the high-level source code. limiting performance instead of requiring the program-Paradyn allows high-level language programmers to mer to do it. view performance in terms of high-level Paradyn's Performance Consultant mod-objects (such as arrays and loops for dataule has a well-defined notion, called the W3 parallel Fortran) and automatically maps search model, of the types of performance P aradyn already the high-level information to low-level problems found in programs and of the varworks well in objects (such as nodes and messages). If ious components contained in the current several domains users want to view the low-level informaprogram. The Performance Consultant uses and measures pro-tion, Paradyn helps them relate perfor-W3 information to guide dynamic instrugrams running on mance data between levels. mentation placement and modification. heterogeneous combinations. Open interfaces for visualization Provide well-defined data abstractions Simple data abstractions can unify the design of a performance tool and simplify its organization. Paradyn uses two important abstractions-metric-focus grids and time histograms-in collecting, communicating, analyzing, and presenting performance data. A metric-focus grid is based on two lists (vectors) of information. The first vector is a list of performance metrics, such as CPU time, blocking time, message rates, I/O rates, or number of active processors. The second vector is a list of individual program components, such as a selection of procedures, processor nodes, disks, message channels, or barrier instances. The combination of these two vectors produces a matrix with each metric listed for each program component. The matrix elements can be single values, such as current rate, average, and sum, or time histograms, which record metric behavior as it varies over time. The time histogram is an important tool in recording time-varying data for long-running programs.
Cluster applications that process large amounts of data, such as parallel scientific or multimedia applications, are likely to cause swapping on individual cluster nodes. These applications will perform better on clusters with network swapping support. Network swapping allows any cluster node with over-committed memory to use idle memory of a remote node as its backing store and to "swap" its pages over the network. As the disparity between network speeds and disk speeds continues to grow, network swapping will be faster than traditional swapping to local disk. We present Nswap, a network swapping system for heterogeneous Linux clusters and networks of Linux machines. Nswap is implemented as a loadable kernel module for version 2.4 of the Linux kernel. It is a spaceefficient and time-efficient implementation that transparently performs network swapping. Nswap scales to larger clusters, supports migration of remotely swapped pages, and supports dynamic growing and shrinking of Nswap cache (the amount of RAM available to store remote pages) in response to a node's local memory needs. Results comparing Nswap running on an eight node Linux cluster with 100BaseT Ethernet interconnect and faster disk show that Nswap is comparable to swapping to local, faster disk; depending on the workload, Nswap's performance is up to 1.7 times faster than disk to between 1.3 and 4.6 times slower than disk for most workloads. We show that with faster networking technology, Nswap will outperform swapping to disk.
In line with institutions across the United States, the Computer Science Department at Swarthmore College has faced the challenge of maintaining a demographic composition of students that matches the student body as a whole. To combat this trend, our department has made a concerted effort to revamp our introductory course sequence to both attract and retain more women and minority students.The focus of this paper is the changes instituted in our Introduction to Computer Science course (i.e., CS1) intended for both majors and non-majors. In addition to changing the content of the course, we introduced a new student mentoring program that is managed by a full-time coordinator and consists of undergraduate students who have recently completed the course. This paper describes these efforts in detail, including the extension of these changes to our CS2 course and the associated costs required to maintain these efforts. We measure the impact of these changes by tracking student enrollment and performance over 13 academic years. We show that, unlike national trends, enrollment from underrepresented groups has increased dramatically over this time period. Additionally, we show that the student mentoring program has increased both performance and retention of students, particularly from underrepresented groups, at statistically significant levels.
We present Nswap2L-FS, a fast, adaptable, and heterogeneous storage system for backing file data in clusters. Nswap2L-FS particularly targets backing temporary files, such as those created by data-intensive applications for storing intermediate results. Our work addresses the problem of how to efficiently and effectively make use of heterogeneous storage devices that are increasingly common in clusters. Nswap2L-FS implements a two-layer device design. The top layer transparently manages a set of bottom layer physical storage devices, which may include SSD, HDD, and its own implementation of network RAM. Nswap2L-FS appears to node operating systems as a single, fast backing storage device for file systems, hiding the complexity of heterogeneous storage management from OS subsystems. Internally, it implements adaptable and tunable policies that specify where data should be placed and whether data should be migrated from one underlying physical device to another based on resource usage and the characteristics of different devices. We present solutions to challenges that are specific to supporting backing filesystems, including how to efficiently support a wide range of I/O request sizes and balancing fast storage goals with expectations of persistence of stored file data. Nswap2L-FS defines relaxed persistence guarantees on individual file writes to achieve faster I/O accesses; less stringent persistence semantics allow it to make use of network RAM to store file data, resulting in faster file I/O to applications. Relaxed persistence guarantees are acceptable in many situations, particularly those involving short-lived data such as temporary files. Nswap2L-FS provides a persistence snapshot mechanism that can be used by applications or checkpointing systems to ensure that file data are persistent at certain points in their execution. Nswap2L-FS is implemented as a Linux block device driver that can be added as a file partition on individual cluster nodes. Experimental results show that file-intensive applications run faster when using Nswap2L-FS as backing store. Additionally, its adaptive data placement and migration policies, which make effective use of different underlying physical storage devices, result in performance exceeding that of any single device.
As Computer Science educators, we know that students learn more from projects that are fun and challenging, that seem "real" to them, and that allow them to be creative in designing their solutions. When we have students beating down our office doors wanting to show us what they've done, we know we have designed a project that truly meets its pedagogical goals. In CS1 courses, it is often difficult to come up with large, real-world programming projects that are at an appropriate level and that really excite students. This is particularly true in the first half of the course when students are learning basic programming and problem solving skills. We found that assignments based on image processing are an effective way to teach many CS1 topics. Because students enjoy working on the projects, they come away with a solid understanding of the topics reinforced by the projects. In this paper, we discuss many ways in which image processing could be used to teach CS1 topics. As an example, we present two image processing projects that we use in our CS1 course. These large, real-world programs are designed so that students can successfully master them early in their first semester of programming. Even though our CS1 course is taught using the C programming language, these projects could easily be used by a CS1 course in C, C++, or Java. We provide starting point code for Java and C versions of the projects, and provide sample assignment write-ups on our project webpage [12].
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
customersupport@researchsolutions.com
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.