Search NASA⌕ Search

SEARCH · Search NASA

Results for “call graph”

Search indexed NASA NTRS and DOE OSTI research on propulsion, heat transfer, battery materials and energy systems. Follow report and document links to the original sources.

Quote a phrase for an exact phrase match. Source license links do not imply unrestricted reuse.

At least 19 records

Generating and Analyzing Program Call Graphs using Ontology

Call graph or caller-callee relationships have been used for various kinds of static program analysis, performance analysis and profiling, and for program safety or security analysis such as detecting anomalies of program execution or code injection attacks. However, different tools generate call graphs in different formats, which prevents efficient reuse of call graph results. In this paper, we present an approach of using ontology and resource description framework (RDF) to create knowledge graphs for specifying call graphs to facilitate the construction of full-fledged and complex call graphs of computer programs, realizing more interoperable and scalable program analyses than conventional approaches. We create a formal ontology-based specification of call graph information to capture concepts and properties of both static and dynamic call graphs so different tools can collaboratively contribute to more comprehensive analysis results. Our experiments show that ontology enables merging of call graphs generated from different tools and flexible queries using a standard query interface. Index Terms—Callgraph, ontology, knowl

Dorta, E.↗

Scalable Comparative Visualization of Ensembles of Call Graphs

Optimizing the performance of large-scale parallel codes is critical for efficient utilization of computing resources. Code developers often explore various execution parameters, such as hardware configurations, system software choices, and application parameters, and are interested in detecting and understanding bottlenecks in different executions. They often collect hierarchical performance profiles represented as call graphs, which combine performance metrics with their execution contexts. The crucial task of exploring multiple call graphs together is tedious and challenging because of the many structural differences in the execution contexts and significant variability in the collected performance metrics (e.g., execution runtime). In this paper, we present Ensemble CallFlow to support the exploration of ensembles of call graphs using new types of visualizations, analysis, graph operations, and features. We introduce ensemble-Sankey , a new visual design that combines the strengths of resource-flow (Sankey) and box-plot visualization techniques. Whereas the resource-flow visualization can easily and intuitively describe the graphical nature of the call graph, the box plots overlaid on the nodes of Sankey convey the performance variability within the ensemble. Our interactive visual interface provides linked views to help explore ensembles of call graphs, e.g., by facilitating the analysis of structural differences, and identifying similar or distinct call graphs. Finally, we demonstrate the effectiveness and usefulness of our design through case studies on large-scale parallel codes.

97 MATHEMATICS AND COMPUTING↗

Behavior specification, finding main, and call graph visualizations

A process transforms compiled software into a semantic form. The process transforms the code into a semantic form. The process analyzes behavior functionality by processing precise programming behavior abstractions stored in a memory and classifies the code as malware based on the code behavior. Another method identifies the starting point of execution of a compiled program. The method calculates a complexity measure by calculating the number of potential execution paths of local functions; identifies the number of arguments passed to local functions; and identifies the starting point of execution of the compiled program. Another method provides interactive, dynamic visualization of a group of related functions wherein a user can explore the rendered graph and select a specific function and display functions that are color coded by their ancestral relation and their function call distance to the selected function.

97 MATHEMATICS AND COMPUTING↗

Optvis

Optvis is a web application to visualize control flow graphs, call graphs, disassembly code from a binary or executable. The main use case is visualizing the compiler optimizations in binary code.

Aschwanden, PascalD.↗

Planning Assembly Of Large Truss Structures In Outer Space

Report dicusses developmental algorithm used in systematic planning of sequences of operations in which large truss structures assembled in outer space. Assembly sequence represented by directed graph called "assembly graph", in which each arc represents joining of two parts or subassemblies. Algorithm generates assembly graph, working backward from state of complete assembly to initial state, in which all parts disassembled. Working backward more efficient than working forward because it avoids intermediate dead ends.

De Mello, Luiz S. Homem↗

Using modularity to segment binary code

We consider the problem of recovering program structure from compiled binary code. We first extract the call graph and layout of functions in memory from the compiled code and represent this information in a graphical format. We then employ Louvain's modularity algorithm to identify clusters of functions that are considered to be related. We find that the quality and properties of clusters extracted by our technique are greatly impacted by the relative importance we assign to the call graph and the ordering of functions in memory.

97 MATHEMATICS AND COMPUTING↗

APT malware static trace analysis through bigrams and graph edit distance

Research and business organizations are vulnerable to attack by malware, particularly advanced persistent threat malware tailored for a specific target. Malware identification is made more difficult because samples can be subtly altered to avoid detection by methods that check for an identical match to known code. Different versions of an original piece of malware form a malware family. And when new malicious software is identified, reverse engineers seek to identify its origin and purpose. Knowing whether new malware is from a known family or a previously unobserved family aids the efficiency of reverse engineers. Furthermore, this article presents a three-stage method to classify new malware into a family by comparing its similarity to existing static traces, and assigning it to the most similar family. First, a fast filtering method creates a shortlist of samples with some similarity to the new malware, using a simple bigram comparison of the instructions. The second stage takes the call graph view of the shortlisted static traces and uses simulated annealing to estimate the graph edit distance, a measure of dissimilarity between graphs. Finally, a random forest classifier combines the previous two results to predict the family to which a new sample belongs. Our paper also considers how to detect when malware is from a new family.

97 MATHEMATICS AND COMPUTING↗

Monitoring and flaw detection during wire-based directed energy deposition using in-situ acoustic sensing and wavelet graph signal analysis

The goal of this work is to detect flaw formation in the wire-based directed energy deposition (W-DED) process using in-situ sensor data. The W-DED studied in this work is analogous to metal inert gas electric arc welding. The adoption of W-DED in industry is limited because the process is susceptible to stochastic and environmental disturbances that cause instabilities in the electric arc, eventually leading to flaw formation, such as porosity and suboptimal geometric integrity. Moreover, due to the large size of W-DED parts, it is difficult to detect flaws post-process using non-destructive techniques, such as X-ray computed tomography. Accordingly, the objective of this work is to detect flaw formation in W-DED parts using data acquired from an acoustic (sound) sensor installed near the electric arc. To realize this objective, we develop and apply a novel wavelet integrated graph theory approach. The approach extracts a single feature called graph Laplacian Fiedler number from the noise-contaminated acoustic sensor data, which is subsequently tracked in a statistical control chart. Using this approach, the onset of various types of flaws are detected with a false alarm rate less-than 2%. This work demonstrates the potential of using advanced data analytics for in-situ monitoring of W-DED.

42 ENGINEERING↗

4-Clique network minor embedding for quantum annealers

Quantum annealing is a quantum algorithm for computing solutions to combinatorial optimization problems. This study proposes a method for minor embedding optimization problems onto sparse quantum annealing hardware graphs called 4-clique network minor embedding. This method is in contrast to the standard minor embedding technique of using a path of linearly connected qubits in order to represent a logical variable state. The 4-clique minor embedding is possible on Pegasus graph connectivity, which is the native hardware graph for some of the current D-Wave quantum annealers. The Pegasus hardware graph contains many cliques of size 4, making it possible to form a graph composed entirely of paths of connected 4-cliques on which a problem can be minor-embedded. The 4-clique chains come at the cost of additional qubit usage on the hardware graph, but they allow for stronger coupling within each chain, thereby increasing chain integrity, reducing chain breaks, and allow for greater usage of the available energy scale for programming logical problem coefficients on current quantum annealers. The 4-clique minor embedding technique is compared with the standard linear path minor embedding with experiments on two D-Wave quantum annealing processors with Pegasus hardware graphs. We show proof-of-concept experiments where the 4-clique minor embeddings can use weak chain strengths while successfully carrying out the computation of minimizing random all-to-all spin glass problem instances. Published by the American Physical Society 2024

75 CONDENSED MATTER PHYSICS, SUPERCONDUCTIVITY AND↗

Hatchet

Hatchet is a Python-based library to analyze performance data that has a tree hierarchy (calling context trees, call graphs, callpath traces, nested regions' timers, etc.).

GAMBLIN, GEORGET↗

Quadratic integer programming for large scale banded matrices

This paper is concerned with the integer quadratic program where the variables are constrained to belong to a given set of discrete values. This quadratic integer program is shown to be equivalent to a problem of finding the shortest path in a particular directed graph called a trellis when the matrix is a positive-definite symmetric banded matrix. An efficient procedure for solving this shortest path problem is presented which allows the solution of the integer quadratic program. This method is particularly effective when the half-bandwidth of the matrix is significantly smaller than its dimension.

Yan, T. Y.↗

On k-ary n-cubes: Theory and applications

Many parallel processing networks can be viewed as graphs called k-ary n-cubes, whose special cases include rings, hypercubes and toruses. In this paper, combinatorial properties of k-ary n-cubes are explored. In particular, the problem of characterizing the subgraph of a given number of nodes with the maximum edge count is studied. These theoretical results are then used to compute a lower bounding function in branch-and-bound partitioning algorithms and to establish the optimality of some irregular partitions.

Mao, Weizhen↗

Using program visualization to enhance maintainability and promote reuse

Our intuition is that comprehension of visual representations is often quicker than of equivalent text. In the work described in this paper, we explore the application of this intuition to programming languages. The goal of this project is to create visual representation of segments of computer programs that improve the maintenance and reusability of this code. We describe a software tool, a program browser, that provides a visual representation of the function call graph of any C program. This tool is the first in a series of tools that aids program comprehension, making reuse of existing programs more likely. The development of the program browser is itself an example of code reuse as described in the section on implementation. Although our intuition is that some visual display of programs aid understandability, we are looking for experimental verification. Several human factors experiments in this area have contradicted this intuition. We describe reasons for these contradictions, and potential solutions to overcome them.

Ames, Chuck↗

TGE: Machine Learning Based Task Graph Embedding for Large-Scale Topology Mapping

Task mapping is an important problem in parallel and distributed computing. The goal in task mapping is to find an optimal layout of the processes of an application (or a task) onto a given network topology. We target this problem in the context of staging applications. A staging application consists of two or more parallel applications (also referred to as staging tasks) which run concurrently and exchange data over the course of computation. Task mapping becomes a more challenging problem in staging applications, because not only data is exchanged between the staging tasks, but also the processes of a staging task may exchange data with each other. We propose a novel method, called Task Graph Embedding (TGE), that harnesses the observable graph structures of parallel applications and network topologies. TGE employs a machine learning based algorithm to find the best representation of a graph, called an embedding, onto a space in which the task-to-processor mapping problem can be solved. We evaluate and demonstrate the effectiveness of TGE experimentally with the communication patterns extracted from runs of XGC, a large-scale fusion simulation code, on Titan.

Choi, Jong Youl↗

Formal Verification of Termination Criteria for First-Order Recursive Functions

This paper presents a formalization of several termination criteria for first-order recursive functions. The formalization, which is developed in the Prototype Verification System (PVS), includes the specification and proof of equivalence of semantic termination, Turing termination, size change principle, calling context graphs, and matrix-weighted graphs. These termination criteria are defined on a computational model that consists of a basic functional language called PVS0, which is an embedding of recursive first-order functions. Through this embedding, the native mechanism for checking termination of recursive functions in PVS could be soundly extended with semi-automatic termination criteria such as calling contexts graphs. As a proof of concept, this paper illustrates how such an extension can be implemented using proof strategies based on computational reflection.

Formal Verification↗

Formal Verification of Termination Criteria for​ First-Order Recursive Functions

This talk presents a formalization of several termination criteria for first-order recursive functions. The formalization, which is developed in the Prototype Verification System (PVS), includes the specification and proof of equivalence of semantic termination, Turing termination, size change principle, calling context graphs, and matrix-weighted graphs. These termination criteria are defined on a computational model that consists of a basic functional language called PVS0, which is an embedding of recursive first-order functions. Through this embedding, the native mechanism for checking termination of recursive functions in PVS could be soundly extended with semi-automatic termination criteria such as calling contexts graphs.

Termination↗

Human Systems Risk Network - A Ranking Analysis of Risks

INTRODUCTION The Human Systems Risk Board (HSRB) is responsible for understanding, managing, and mitigating the risks associated with spaceflight. For a particular mission, the HSRB assigns each human system risk a rating on a 5x5 grid assessing its likelihood and consequence, which is ultimately used to compare and rank the risks. The HSRB approaches risk management by primarily establishing the context of each human system risk individually with the understanding that mitigating one risk might affect the likelihood, consequence, and mitigation approaches of another. To support this effort the HSRB, subject matter experts, and risk custodian teams created directed acyclic graphs (DAG), often called a causal graph, for the twenty-nine risks. In this presentation, we propose a new ranking algorithm for the risks which includes the downstream influence of each risk according to the information in the DAGs and provide an application of graph theoretic tools. METHODS In 2014, Mindock and Klaus proposed a taxonomy for human system risk influences which we have adopted to categorize the nodes in each DAG. Analyzing the nodes that correspond to the risks in this taxonomy allows us to analyze and understand how each risk influences the others. We construct an auxiliary network, which we call the Primary Risk Network (PRN), where the nodes are the twenty-nine space flight risks and, a directed edge connects Risk A to Risk B if Risk A has some influence on the likelihood or consequence of Risk B as described in the DAGS. We perform a variety of graph theoretic ranking methods on the nodes (or risks) in the PRN, including Katz centrality. RESULTS We rank the nodes in the PRN using the Katz centrality score. The ten risks with the highest score are pictured in Figure 1, colored (light to dark) according to their score. We analyze other centrality measures like betweenness centrality, eigenvector centrality, and the Estrada index, and provide the meaning of the corresponding rankings in terms of the risks. Future work includes analyzing the other categories in the taxonomy defined by Mindock and Klaus [1]. For example, we are interested in analyzing the nodes that are labeled as countermeasures or capabilities and perform similar analysis to measure their effect on certain medical conditions.

dag↗

Node-degree aware edge sampling mitigates inflated classification performance in biomedical random walk-based graph representation learning

Motivation: Graph representation learning is a family of related approaches that learn low-dimensional vector representations of nodes and other graph elements called embeddings. Embeddings approximate characteristics of the graph and can be used for a variety of machine-learning tasks such as novel edge prediction. For many biomedical applications, partial knowledge exists about positive edges that represent relationships between pairs of entities, but little to no knowledge is available about negative edges that represent the explicit lack of a relationship between two nodes. For this reason, classification procedures are forced to assume that the vast majority of unlabeled edges are negative. Existing approaches to sampling negative edges for training and evaluating classifiers do so by uniformly sampling pairs of nodes. Results: We show here that this sampling strategy typically leads to sets of positive and negative examples with imbalanced node degree distributions. Using representative heterogeneous biomedical knowledge graph and random walk-based graph machine learning, we show that this strategy substantially impacts classification performance. If users of graph machine-learning models apply the models to prioritize examples that are drawn from approximately the same distribution as the positive examples are, then performance of models as estimated in the validation phase may be artificially inflated. We present a degree-aware node sampling approach that mitigates this effect and is simple to implement. Availability and implementation: Our code and data are publicly available at https://github.com/monarch-initiative/negativeExampleSelection.

59 BASIC BIOLOGICAL SCIENCES↗