PaToH (Partitioning Tools for Hypergraph) is an extremely fast multilevel hypergraph partitioning tool. Important features of PaToH:
- Fast, stable multilevel hypergraph partitioner,
- Hypergraph partitioning with fixed cells,
- Multi-constraint hypergraph partitioner.
You can find more information about PaToH, as well as binary distributions for various platforms here.
theadvisor is an academic paper recommendation service that helps researchers with their literature search. The service starts with a simple keyword search or takes a bibliography file (in BibTeX, RIS, or EndNote XML format) of a paper the researcher currently working on, and suggests other relevant publications. It also gives venue and reviewer recommendations. You can access the service at http://theadvisor.osu.edu
matchmaker2 is a framework for maximum cardinality matching algorithms on bipartite graphs. It includes several GPU-based maximum cardinality matching algorithms in addition to sequential ones. More information about matchmaker2 can be found here.
BADIOS is a framework to shatter and compress graphs for fast betweenness centrality computation. It also includes a preordering procedure. More information about BADIOS can be found here.
gpuBC is a sofware including a set of techniques to make the betweenness computations faster on GPUs as well as on heterogeneous CPU/GPU architectures. Our techniques are based on virtualization of the vertices with high degree, strided access to adjacency lists, removal of the vertices with degree 1, and graph ordering. More information can be found here.
mrSNP is a web service that predicts the impact of a SNP in a 3UTR on miRNA binding. It reduces the manual work and allows users to input any SNP that has been captured with any SNP-calling program. More information about mrSNP can be found here.
CPB (Correlated Patterns Biclustering) is a biclustering-based tool to mine genes that are co-regulated with a given reference gene in order to discover genes that function in a common biological process. More information about CPB can be found here.
BiBench (Bicluster Benchmarking) is a Python library designed to make biclustering analysis easy by providing a common interface to several biclustering algorithms. It also provides features such as, generation of synthetic datasets for different bicluster models, transformations of the datasets, and validation and visualization of the findings of the algorithms. More information about BiBench can be found here.
pMap is an MPI-based tool to parallelize the alignment step of state-of-the-art sequence mapping programs. It allows transparent execution of the alignment step of a selected program in parallel on a compute-cluster. pMap is publicly available and currently supports BWA, SOAP, Bowtie, GSNAP, MAQ and RMAP. More information about pMap can be found here.
SPart is a C++ library for partitioning a spatially located workload into balanced parts. SPart provides numerous algorithms to partition one dimensional workload into intervals and two dimensional workload into rectangles. The spatial partitioning techniques are commonly used to distribute scientific application including particle in cell simulation, direct volume rendering, linear algebra and collision detection. More information about SPart can be found here.
Zoltan, developed and maintained by Sandia National Laboratories, is a toolkit for load balancing and parallel data management. In the last couple of years, we have been collaborating with the Zoltan team. As an outcome of this collaboration we developed a parallel multilevel hypergraph partitioning algorithm (which can be used for static and dynamic load-balancing as well as matrix partitioning), and also distance-1 and distance-2 coloring algorithms. Current Zoltan release includes the implementation of these algorithms and its source code is distributed under the GNU Lesser General Public License. More information and the distribution of Zoltan can be found at the project web site.
DataCutter is a component-based middleware framework initally designed to support coarse-grain data-flow execution on heterogeneous environments. In DataCutter, application processing structure is implemented as a set of components, named filters, that exchange data through logical streams. A stream denotes an uni-directional data flow from one filter (i.e., the producer) to another (i.e., the consumer). A filter is required to read data from its input streams and write data to its output streams only.
The DataCutter runtime system supports both data- and task-parallism. Processing, network and data copying overheads are minimized by the ability to place filters on different platforms. DataCutter's filtering service performs all steps necessary to instantiate filters on the desired hosts, to connect all logical endpoints, and to call the filter's interface functions for processing work. Data exchange between two filters on the same host takes place by memory copy operations, while a message passing communication layer (e.g. TCP sockets or MPI) is used for communication between filters on different hosts.
We are currently developing a light-weight version of DataCutter, DataCutter-Lite, for multi-to-many core architectures.