# Area Exam

## In Situ Visualization of Performance Data for High-Performance Computing Applications

Performance visualization of high-performance computing (HPC) codes, while complex, can be one of the most useful tools in analysis. Moving the visualization earlier in a workflow can save scientists enormous amounts of time and money when they are optimizing and running their experiments on expensive and in-demand, HPC resources. This paper surveys current performance visualization capabilities and challenges, and analyzes the possibilities of taking a more in situ approach.

## Iterative Methods for Earthquake Cycle Simulations with HPC Applications

High Performance Computing (HPC) is a powerful tool in scientific research for experimental simulation and data analysis. However, it has not been well studied and applied for earthquake cycle simulation. In this work, we explore computational methods and HPC techniques for earthquake cycle simulation with a focus on iterative methods and preconditioning techniques. The problem that we target is solving Poisson's equation numerically with boundary conditions derived from geophysics.

## Toward Finer Granularity Analysis of Network Trafﬁc

Fine-grained trafﬁc analysis (FGTA), as an advanced form of trafﬁc analysis (TA), aims to analyze network trafﬁc to deduce information related to application-layer activities, ﬁne-grained user behaviors, or trafﬁc content, even in the presence of trafﬁc encryption or trafﬁc obfuscation. Different from traditional TA, FGTA approaches are usually based on machine learning or high-dimensional clustering, enabling them to discover subtle differences between different network trafﬁc sets.

Flow visualization is an important approach for understanding fluid dynamics simulations. This survey focuses on flow visualization algorithms that use "particle advection", a process that displaces particles in a flow field. The performance of these algorithms can vary greatly based on a variety of factors including workload, solver type, underlying mesh type, and optimizations employed. That said, the relationship between these factors and actual execution time is often not well understood. In response, this survey aims to illuminate performance aspects.

## The Evolution of HPC Software Development Methodologies and Performance Analysis Tools

High-Performance Computing (HPC) software is rapidly evolving to support a wide variety of heterogeneous applications. Traditionally, HPC applications are built using the message-passing interface (MPI) and operate in a bulk-synchronous manner.  The complexity of scientific software development and emerging classes of workloads have driven the HPC community to adopt increasingly modular software development frameworks.  On the one hand, the modularization of HPC software makes programming these systems more manageable.

## Dynamic Adaptation Techniques and Opportunities to Improve HPC Runtimes

Exascale, a new era of computing, is knocking at the door. Leaving the days of high frequency, single-core processors behind, the new paradigm of multi-core/many-core processors in complex heterogeneous systems has come to dominate.

## Utilizing Text Structure for Information Extraction

Information Extraction (IE) is one of the important fields of natural language processing (NLP) with the primary goal of creating structured knowledge from unstructured text. In more than two decades, IE has gained a lot of attention and many new tasks and models have been proposed. Moreover, with the proliferation of deep learning and neural nets in recent years, the advanced deep models have brought about a surge in the performance of IE models.

## Layered Network Protocols for Secure Communications in the Internet of Things

As the Internet of Things (IoT) continues to penetrate into our lives, security becomes a crucial issue for IoT devices to communicate with each other. Many standardized network protocols and cryptographic protocols have been proposed recently for IoT to secure their communication. However, due to the heterogeneous nature and the constraint resource in IoT, many IoT devices failed to protect their communication with the existing standardized protocols. To this end, in this work, we explore the area of secure communication in IoT environment.

## Deriving Practical Implementations of First-class Functions

I explore the ways in which a practical implementation is derived from Church's calculus of $\lambda$-conversion, i.e. the core of functional programming languages today like Haskell, Ocaml, Racket, and even Javascript. Despite the implementations being based on the calculus, the languages and their semantics that are used in compilers today vary greatly from their original inspiration. I show how incremental changes to Church's semantics yield the intermediate theories of explicit substitutions, operational semantics, abstract machines, and compilation through intermediate languages, e.g.

## Online Monitoring, Analysis, and Feedback for High-Performance Computing Systems

In this work we explore the area of online monitoring, analysis, and feedback systems in high-performance computing. This area of research is increasingly important as software and machines grow in scale and architectural complexity. We begin by outlining the terms of the art and scope of the area being considered. We provide a high-level overview of online monitoring, analysis, and feedback within the context of high-performance computing. Significant features of each subtopic are discussed, as well as the reasoning behind the integration of these topics into a holistic area of research.