Openstack Admin script
We have created a utility script that combines a series of manual commands for deploying a containered system service. This is a useful utility script for OpenStack administrators and collects several manual commands into a useful process.
Contextual Embedding Learning for Heterogeneous Graph Databases
Representation learning methods for heterogeneous networks produce a low-dimensional vector embedding for each node that is typically fixed for all tasks involving the node. Many of the existing methods focus on obtaining a static vector representation for a node in a way that is agnostic to the downstream application where it is being used. In practice, however, downstream tasks require specific contextual information that can be extracted from the subgraphs related to the nodes provided as input to the task. To tackle this challenge, we develop SLiCE, a framework bridging static representation learning methods using global information from the entire graph with localized attention driven mechanisms to learn contextual node representations. We first pre-train our model in a self-supervised manner by introducing higher-order semantic associations and masking nodes, and then fine-tune our model for a specific link prediction task. Instead of training node representations by aggregating information from all semantic neighbors connected via metapaths, we automatically learn the composition of different metapaths that characterize the context for a specific task without the need for any pre-defined metapaths. SLiCE significantly outperforms both static and contextual embedding learning methods on several publicly available benchmark network datasets. We also interpret the semantic association matrix and provide its utility and relevance in making successful link predictions between heterogeneous nodes in the network.
Data Feature Extraction for High-Rate 3-Phase Data - OPEN SOURCE
This algorithm processes high-rate 3-phase signals to identify the start time of each signal and estimate its envelope as data features. The start time and magnitude of each signal during the steady state is also extracted. The features can be used to detect abnormal signals.
Automated NGFC system design tool set (ARPA-E, iEdison No. 0685901-20-0019)
We propose to leverage the conceptual design tools within the Institute for the Design of Advanced Energy Systems (IDAES) Process Systems Engineering (PSE) framework to develop optimized, next-generation solid oxide fuel cell (SOFC) based natural gas fuel cell (NGFC) system designs with > 70% fuel efficiency and
Parallel k-means++ - Open Source
A parallelization of the k-means++ seed selection algorithm on three distinct hardware platforms: GPU, multicore CPU, and multithreaded architecture. K-means++ was developed by David Arthur and Sergei Vassilvitskii in 2007 as an extension of the k-means data clustering technique. These algorithms allow people to cluster multidimensional data, by attempting to minimize the mean distance of data points within a cluster. K-means++ improved upon traditional k-means by using a more intelligent approach to selecting the initial seeds for the clustering process. While k-means++ has become a popular alternative to traditional k-means clustering, little work has been done to parallelize this technique. We have developed original C++ code for parallelizing the algorithm on three unique hardware architectures: GPU using NVidia's CUDA/Thrust framework, multicore CPU using OpenMP, and the Cray XMT multithreaded architecture. By parallelizing the process for these platforms, we are able to perform k-means++ clustering much more quickly than it could be done before.
Haystack - Open Source
Haystack is a software agent platform for user emulation. We are leveraging python and the SPADE software packages to develop an architecture and platform where software agents can be sent actuation behaviors, configured with different behavior profiles (time based, event based, probability based, etc.), and controlled/monitored from a central control unit.
mel-upx
Traditional implementations of parallel graph operations on distributed memory platforms are written using Message Passing Interface (MPI) point-to-point communication primitives such as Send-Recv (blocking and nonblocking). Apart from this classical model in MPI, there has been tremendous progress in other Partitioned Global Address Space (PGAS) models over the years. However, their suitability for handling the irregular traffic workloads typical of graph operations remain comparatively less explored. We have implemented Half-Approximate Graph Matching using UPCXX, which is a PGAS model derived from UPC programming model, that uses modern C++. In addition to a one-sided communication of data, UPCXX also allows Remote Procedure Calls (RPC), which makes it possible to communicate the function that would be operated on the data at the remote side. Usage of RPCs significantly improves the programmability, owing to lesser lines of code and an enhanced composability.
cuRipples
We designed and developed of a new hybrid CPU+GPU parallel influence maximization algorithm (CuRipples) that is also capable of running on multi-GPU systems. Our approach uses techniques for efficiently sharing and scheduling of work between CPU and GPU, and data access and synchronization schemes to efficiently map the different steps of sampling and seed selection on a heterogeneous system. Our invention enables the use of state-of-the-art multi-GPU systems where our implementation is able to achieve drastic reductions in the time to solution, from hours to under a minute, while also significantly enhancing the quality of the solution.