Emphasis on next-generation computing is driven at the national level because it affects scientific discovery, engineering, healthcare, security, and economic competitiveness. Moreover, high-performance computing is playing a greater role in our daily activities, requiring more performance from each system. However, pushing the performance envelope is becoming increasingly challenging – designing a machine that is 5ox faster isn’t as simple as making today’s machines sox larger. The future of high-performance computing will incorporate novel architectural concepts and heterogeneity at both the node and the system level to achieve power and performance goals. These future systems present new challenges and opportunities in how we approach computing.
Continue readingCategory: Spring 2023
For tournament scheduling, we consider scheduling of round robin home – away tournament where each team plays at most k consecutive home/away games. The
hardness of this problem is discussed and some results for k = 2, 3 and greater than 3
are presented as separate cases.
While software is becoming more ubiquitous in our everyday lives, so are unintended bugs. In response, static verification techniques were introduced to prove or disprove the absence of bugs in code. Unfortunately, current techniques burden users by requiring them to write inductively complete specifications involving many extraneous details. To overcome this limitation, I introduce the idea of gradual verification, which handles complete, partial, or missing specifications by soundly combining static and dynamic checking. As a result, gradual verification allows users to specify and verify only the properties and components of their system that they care about and increase the scope of verification gradually—which is poorly supported by existing tools.
Continue reading