Miracle-dz/UniFAR-FTUs huggingface dataset:
REVAMP: a systematic framework for heterogeneous CGRA realization

Coarse-Grained Reconfigurable Architectures (CGRAs) provide an excellent balance between performance, energy efficiency, and flexibility. However, increasingly sophisticated applications, especially on the edge devices, demand even better energy efficiency for longer battery life. Most CGRAs adhere to a canonical structure where a homogeneous set of processing elements and memories communicate through a regular interconnect due to the simplicity of the design. Unfortunately, the homogeneity leads to substantial idle resources while mapping irregular applications and creates inefficiency. We plan to mitigate the inefficiency by systematically and judiciously introducing heterogeneity in CGRAs in tandem with appropriate compiler support. We propose REVAMP, an automated design space exploration framework that helps architects uncover and add pertinent heterogeneity to a diverse range of originally homogeneous CGRAs when fed with a suite of target applications. REVAMP explores a comprehensive set of optimizations encompassing compute, network, and memory heterogeneity, thereby converting a uniform CGRA into a more irregular architecture with improved energy efficiency. As CGRAs are inherently software scheduled, any micro-architectural optimizations need to be partnered with corresponding compiler support, which is challenging with heterogeneity. The REVAMP framework extends compiler support for efficient mapping of loop kernels on the derived heterogeneous CGRA architectures. We showcase REVAMP on three state-of-the-art homogeneous CGRAs, demonstrating how REVAMP derives a heterogeneous variant of each homogeneous architecture, with its corresponding compiler optimizations. Our results show that the derived heterogeneous architectures achieve up to 52.4% power reduction, 38.1% area reduction, and 36% average energy reduction over the corresponding homogeneous versions with minimal performance impact for the selected kernel suite.
A Comparison of Immediate and Scheduled Feedback in Introductory Programming Projects

How students are assessed has a powerful effect on their strategies for studying and their learning. When designing assessments, instructors should consider how different approaches for providing feedback to students could encourage positive learning behaviours. One such design is the use of interim deadlines that enable students to receive and respond to feedback. This is used to encourage students to start early and thus reduce the negative effects of procrastination. If multiple submissions are allowed, penalty schemes can be included to encourage students to reflect deeply on the feedback they receive, rather than developing an over-reliance on autograders. In this work we describe two approaches to feedback used over two consecutive semesters for a final project in a large introductory programming course. In both semesters, the complexity and structure of the final project was similar and students received identical instruction. In the first instance of the course students could submit their work prior to two scheduled interim deadlines, after which they would receive automated feedback, before meeting a final third deadline. In the second instance, students received automated feedback immediately upon submission but with increasing penalties to discourage excessive submissions. In both cases, the ability to receive automated feedback -- both scheduled and immediate -- was designed to encourage early participation with the project. Under the two feedback schemes, we observed different patterns of behaviour -- particularly for the lower performing students. We explore the benefits and drawbacks of the two schemes and consider implications for future project grading.
IOCost: block IO control for containers in datacenters

Resource isolation is a fundamental requirement in datacenter environments. However, our production experience in Meta’s large-scale datacenters shows that existing IO control mechanisms for block storage are inadequate in containerized environments. IO control needs to provide proportional resources to containers while taking into account the hardware heterogeneity of storage devices and the idiosyncrasies of the workloads deployed in datacenters. The speed of modern SSDs requires IO control to execute with low-overheads. Furthermore, IO control should strive for work conservation, take into account the interactions with the memory management subsystem, and avoid priority inversions that lead to isolation failures. To address these challenges, this paper presents IOCost, an IO control solution that is designed for containerized environments and provides scalable, work-conserving, and low-overhead IO control for heterogeneous storage devices and diverse workloads in datacenters. IOCost performs offline profiling to build a device model and uses it to estimate device occupancy of each IO request. To minimize runtime overhead, it separates IO control into a fast per-IO issue path and a slower periodic planning path. A novel work-conserving budget donation algorithm enables containers to dynamically share unused budget. We have deployed IOCost across the entirety of Meta’s datacenters comprised of millions of ma- chines, upstreamed IOCost to the Linux kernel, and open-sourced our device-profiling tools. IOCost has been running in production for two years, providing IO control for Meta’s fleet. We describe the design of IOCost and share our experience deploying it at scale.
Towards an Ontology for Smart City Competences

Smart cities are complex ecosystems that use information and communication technologies for helping their citizens and organizations to face the challenges of urbanization, safety, resilience, and sustainability. The SmartDevOps project proposes a framework aiming to address the shortage of professional skills in municipalities. Following the increased use of AI methods to provide recommendations in training, there is also an increased need for formalization of existing courses to enable recommendations. This work is dedicated to the conceptual formal modeling of the delivered courses for gaining the competences required for smart city professionals by following the SmartDevOps methodology. We present the Smart City Competence Ontology (SCCompO) that provides a formalism for modeling concepts like competence, learning objective and outcome of courses that aims to cooperate with MOOC platform for training of Smart City professionals. It follows the modular, extensible structure of the curriculum, and it is designed to respond to questions regarding prerequisites and outcomes of job profiles, competences, and courses. The impact of using the developed ontology is to augment the MOOC platform by providing reasoning on course selection and their learning outcomes as well on the relations among these concepts in order to make decisions about the learners’ curricula.
Increase Performance in CS 2 via a Spiral Redesign of CS 1

Computer Science (CS 1) offerings in most universities tend to be notoriously difficult. Over the past 60 years about a third of the students either fail or drop out of the course. Past research has focused on improving teaching methods through small changes without changing the overall course structure. The premise of our research is that restructuring the CS 1 course using a Spiral pedagogy based on principles for improving memory and recall can help students learn the information and retain it for future courses. Using the principles of Spacing, Interleaving, Elaboration, Practiced Retrieval, and Reflection, we fundamentally redesigned CS 1 with a complete reordering of topics. We evaluated the newly designed CS 1 by comparing the students with those coming from a traditional offering in terms of (1) CS 1 performance, (2) retention of students between CS 1 and 2, and (3) CS 2 performance. We demonstrate that the Spiral method helped students outperform those who learn via the traditional method by 9% on final exam scores in CS 1. Retention is increased between CS 1 and CS 2 with a 19.2% increase for women, and 9.2% overall. Furthermore, students continue to do better in CS 2 with increased grades across all assessments and show a 15% increase in passing grades. We provide a framework for the Spiral methodology so that others may replicate the design. Our results lead us to consider evaluating and improving the underlying methodology with which we teach Computer Science.
Multilingual CS Education Pathways: Implications for Vertically-Scaled Assessment

The expansion of computer science (CS) into K-12 contexts has resulted in a diverse ecosystem of curricula designed for various grade levels, teaching a variety of concepts, and using a wide array of different programming languages and environments. Many students will learn more than one programming language over the course of their studies. There is a growing need for computer science assessment that can measure student learning over time, but the multilingual learning pathways create two challenges for assessment in computer science. First, there are not validated assessments for all of the programming languages used in CS classrooms. Second, it is difficult to measure growth in student understanding over time when students move between programming languages as they progress in their CS education. In this position paper, we argue that the field of computing education research needs to develop methods and tools to better measure students' learning over time and across the different programming languages they learn along the way. In presenting this position, we share data that shows students approach assessment problems differently depending on the programming language, even when the problems are conceptually isomorphic, and discuss some approaches for developing multilingual assessments of student learning over time.
The Open Data Canvas–Analyzing Value Creation from Open Data

Expectations to derive value from open data are high. However, how value is created from open data is still largely unknown. Open data value is usually generated in constellation of actors in which each player has different capabilities and roles. To understand the open data value creation process, the business model canvas is introduced in this article. The typical components of the business model canvas and open data value creation are derived from the literature. By combining these two research streams, the open data value model canvas is created. The case of Coronavirus disease 2019 (COVID-19) worldwide dashboard developed by the Johns Hopkins University is used to evaluate the model's utility. Key components of the open data value model are creating an overview of various data sources from public and private organizations, having capabilities to combine heterogeneous data, and connecting data and needs. In this way, the open data canvas helps to grasp the value creation logic.
Protecting adaptive sampling from information leakage on low-power sensors

Adaptive sampling is a powerful family of algorithms for managing energy consumption on low-power sensors. These algorithms use captured measurements to control the sensor's collection rate, leading to near-optimal error under energy constraints. Adaptive sampling's data-driven nature, however, comes at a cost in privacy. In this work, we demonstrate how the collection rates of general adaptive policies leak information about captured measurements. Further, individual adaptive policies display this leakage on multiple tasks. This result presents a challenge in maintaining privacy for sensors using energy-efficient batched communication. In this context, the size of measurement batches exposes the sampling policy's collection rate. Thus, an attacker who monitors the encrypted link between sensor and server can use message lengths to uncover information about the captured values. We address this side-channel by introducing a framework called Adaptive Group Encoding (AGE) that protects any periodic adaptive sampler. AGE uses quantization to encode all batches as fixed-length messages, making message sizes independent of the collection rate. AGE reduces the quantization error through a series of transformations. The proposed framework preserves the low error of adaptive sampling while preventing information leakage and incurring negligible energy overhead.
Sympathy for the (Novice) Developer: Programming Activity When Compilation Mechanism Varies

In this work we investigate compilation behavior and error resolution time of thousands of novice programmers using two different versions of the BlueJ pedagogical Java programming environment. The two versions feature different compilation and error message presentation mechanisms. BlueJ 3 is a click-to-compile environment with enforced first error message presentation whereas BlueJ 4 features automatic compilation and on-demand error message presentation. We provide an overview of compilation activity based on novices' programming time spent in different compilation states and also present differences in the time it takes students to reach successful compilation states in each version. We find that compilation activity differs for each version and that students reach successful compilations faster in BlueJ 4. Based on our findings, we discuss the effectiveness of each version and argue against the constant red underlining of code - an error indicator mechanism present in BlueJ 4 - as this can lead to false positive errors that may mislead novices during their programming tasks.
Using WebAssembly to Teach Code Generation in a Compiler Design Course

For many students, code generation is the most demanding topic covered in a typical undergraduate Compiler Design course. In this poster, the author will present how he has successfully used the fairly novel and promising WebAssembly technology in his course in order to make the said topic more relevant and engaging for learners. Once we have a compiler frontend that produces an abstract syntax tree (AST) and a symbol table for a given source program, the code generation phase involves traversing the AST and emitting the corresponding WebAssembly instructions in a generally straightforward fashion. The code generation phase is significantly simplified given that WebAssembly is actually an intermediate code for a stack-based virtual machine. The real machine code is produced later by the WebAssembly runtime's just-in-time (JIT) compiler. During execution, the generated code may call functions written in a high-level language directly supported by the runtime. This allows having basic I/O capabilities, like printing to the screen or reading input from the keyboard. At the end of the semester, students have authored the frontend and backend of a fully working compiler that translates a simple C-like procedural language into platform-neutral executable WebAssembly code.
Development of a fault detection algorithm for Photovoltaic Systems

The use of an algorithm based on data from I-V curves, a simple and cost-effective method for fault detection and identification in Photovoltaic Systems (PVS), is presented. When determining whether or not to invest in a PVS, life expectancy and reliability are critical considerations. In this paper, the development of an I-V curve-based algorithm for fault detection and identification in PVS is presented. The method calculates the single diode model that describes the Photovoltaic cell in use, for the irradiance and temperature of a certain location. After that, a threshold monitoring approach identifies the presence and the nature of a fault. Measurements were performed to certify the ability of the algorithm to detect both the normal operation at maximum power point and the ability to detect and identify errors introduced during the operation of the experiment. The algorithm can identify open-circuit, short-circuit and mismatch faults. The results are promising, implying that the method could be applied in PVS.
The Impact of Optional Groups on Students

We investigate the impact of allowing students to optionally work in small groups on problem sets in first- and second-year computer science theory courses. After each homework assignment, students reported on their experience working on that problem set either individually or in a group of two or three. Over 1,300 students from two courses participated. We explore who chooses to work in a group and why, how students work in groups, and differences in learning, drop-rates, help-seeking, and satisfaction with problem set submissions between groups and students working individually. Students reported that workload and problem set marks were key factors for choosing to work in groups. Students in groups were less likely to drop the course, less likely to seek help from unsanctioned sources, less likely to leave problems unanswered, and more satisfied with their submissions. Students working in groups had much higher average grades for problem sets and similar grades on tests. On individual tests, we observed lower grades for students who reported either doing less than their fair share overall or allowing their partner to do most of the work on particular questions. Final course grades were higher for students who worked in groups, even when controlling for prerequisite grades.
Eavesdropping user credentials via GPU side channels on smartphones

Graphics Processing Unit (GPU) on smartphones is an effective target for hardware attacks. In this paper, we present a new side channel attack on mobile GPUs of Android smartphones, allowing an unprivileged attacker to eavesdrop the user's credentials, such as login usernames and passwords, from their inputs through on-screen keyboard. Our attack targets on Qualcomm Adreno GPUs and investigate the amount of GPU overdraw when rendering the popups of user's key presses of inputs. Such GPU overdraw caused by each key press corresponds to unique variations of selected GPU performance counters, from which these key presses can be accurately inferred. Experiment results from practical use on multiple models of Android smartphones show that our attack can correctly infer more than 80% of user's credential inputs, but incur negligible amounts of computing overhead and network traffic on the victim device. To counter this attack, this paper suggests mitigations of access control on GPU performance counters, or applying obfuscations on the values of GPU performance counters.
Lessons Learned from Asynchronous Online Assessment Formats in CS0 and CS3

This paper provides an experience report for the asynchronous online assessments in two classes in Fall 2020: CS0 and CS3. The two courses shared many structural similarities; both were taught by the same instructor, with three exams delivered asynchronously using the same submission and question randomization software. They differed in proctoring rules, time allowances, student feedback, and lessons learned. In both classes, the first exam followed the same format, with students being given unlimited time over a 24-hour period to take the exam; later exams diverged due to different preferences among students in each class. CS0 historically had extremely low rates of academic dishonesty, so no formal proctoring was mandated. Thankfully we did not find evidence of academic impropriety at a higher rate than in-person semesters. Students universally loved the untimed format due to the flexibility that it provided, which led us to increasing the time window in which students could take the exam. Cheating was more prevalent within CS3 during in-person semesters, so it was not appropriate to have unproctored exams. Instead, we required students to submit a recording of themselves taking the exam. Even with these proctoring policies in place, students still found ways to cheat. Additionally, many students reported that the unlimited time increased their stress, leading us to restrict the time policies as the semester progressed. Our takeaway is that multi-day unproctored randomized exams are effective in a student population with high honor-code adherence, but finding the right policy for a high-stress major course remains elusive.
HAMMER: boosting fidelity of noisy Quantum circuits by exploiting Hamming behavior of erroneous outcomes

Quantum computers with hundreds of qubits will be available soon. Unfortunately, high device error-rates pose a significant challenge in using these near-term quantum systems to power real-world applications. Executing a program on existing quantum systems generates both correct and incorrect outcomes, but often, the output distribution is too noisy to distinguish between them. In this paper, we show that erroneous outcomes are not arbitrary but exhibit a well-defined structure when represented in the Hamming space. Our experiments on IBM and Google quantum computers show that the most frequent erroneous outcomes are more likely to be close in the Hamming space to the correct outcome. We exploit this behavior to improve the ability to infer the correct outcome. We propose Hamming Reconstruction (HAMMER), a post-processing technique that leverages the observation of Hamming behavior to reconstruct the noisy output distribution, such that the resulting distribution has higher fidelity. We evaluate HAMMER using experimental data from Google and IBM quantum computers with more than 500 unique quantum circuits and obtain an average improvement of 1.37x in the quality of solution. On Google’s publicly available QAOA datasets, we show that HAMMER sharpens the gradients on the cost function landscape.
Smart Cities Body of Knowledge

Smart cities are complex ecosystems that use information and communication technologies to help their citizens and organizations deal with the challenges of urbanization, safety, resilience, and sustainability. Their creation is a long and laborious transformation that should not be considered mainly as a technical challenge but as a movement to create citizen-centered ecosystems that improve quality of life and stimulate economic activity. However, there is strong evidence that the workforce is in shortage or not skillful enough to handle these challenges. This paper presents the results of the SmartDevOps project, which attempts to systematically define the required smart cities competences and to outline the curricula that can be used for the development of the required knowledge coherently and systematically.
Temporal and SFQ pulse-streams encoding for area-efficient superconducting accelerators

Superconducting technology is a prime candidate for the future of computing. However, current superconducting prototypes are limited to small-scale examples due to stringent area constraints and complex architectures inspired from voltage-level encoding in CMOS; this is at odds with the ps-wide Single Quantum Flux (SFQ) pulses used in superconductors to carry information. In this work, we propose a wave-pipelined Unary SFQ (U-SFQ) architecture that leverages the advantages of two data representations: pulse-streams and Race Logic (RL). We introduce novel building blocks such as multipliers, adders, and memory cells, which leverage the natural properties of SFQ pulses to mitigate area constraints. We then design and simulate three popular hardware accelerators: i) a Processing Element (PE), typically used in spatial architectures; ii) A dot-product-unit (DPU), one of the most popular accelerators in artificial neural networks and digital signal processing (DSP); and iii) A Finite Impulse Response (FIR) filter, a popular and computationally demanding DSP accelerator. The proposed U-SFQ building blocks require up to 200× fewer JJs compared to their SFQ binary counterparts, exposing an area-delay trade-off. This work mitigates the stringent area constraints of superconducting technology.