SUMMARYThe Java .class file is a compact encoding of programs for a stack-based virtual machine. It is intended for use in a networked environment, which requires machine independence and minimized consumption of network bandwidth. However, as in all interpreted virtual machines, performance does not match that of code generated for the target machine. We propose verifiable, machine-independent annotations to the Java class file to bring the quality of the code generated by a 'just-in-time' compiler closer to that of an optimizing compiler without a significant increase in code generation time. This division of labor has expensive machine-independent analysis performed off-line and inexpensive machine-dependent codegeneration performed on the client. We call this phenomenon 'super-linear analysis and linear exploitation.' These annotations were designed mindful of the concurrency features of the Java language. In this paper we report results from our machine-independent, prioritized register assignment. We also discuss other possible annotations.
Runtime specialization is used for optimizing programs based on partial information available only at runtime. In this paper we apply autotuning on runtime specialization of Sparse Matrix-Vector Multiplication to predict a best specialization method among several. In 91% to 96% of the predictions, either the best or the second-best method is chosen. Predictions achieve average speedups that are very close to the speedups achievable when only the best methods are used. By using an efficient code generator and a carefully designed set of matrix features, we show the runtime costs can be amortized to bring performance benefits for many real-world cases.
The Programming Studio in the University of Illinois Computer Science department is a required course in which small groups of students participate in weekly code reviews of each other's programs. To increase student engagement in the discussions, Tablet PCs were introduced for several weeks in the middle of the semester. By recording the discussions before, during, and after the use of tablets, we measure the effectiveness of this intervention. In doing so, we develop a simple metric to measure the "active engagement" of the participants. We found each section was significantly more engaging when using Tablet PCs (p<0.0001) and the large majority of individual participants were more engaged. This paper contributes both an objective measurement of "active engagement" and a successful intervention in a programming studio-type course.
scite is a Brooklyn-based startup 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 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.