13 research outputs found
Fast Parallel Algorithms for Basic Problems
Parallel processing is one of the most active research areas these days. We are interested in one aspect of parallel processing, i.e. the design and analysis of parallel algorithms. Here, we focus on non-numerical parallel algorithms for basic combinatorial problems, such as data structures, selection, searching, merging and sorting. The purposes of studying these types of problems are to obtain basic building blocks which will be useful in solving complex problems, and to develop fundamental algorithmic techniques.
In this thesis, we study the following problems: priority queues, multiple search and multiple selection, and reconstruction of a binary tree from its traversals. The research on priority queue was motivated by its various applications. The purpose of studying multiple search and multiple selection is to explore the relationships between four of the most fundamental problems in algorithm design, that is, selection, searching, merging and sorting; while our parallel solutions can be used as subroutines in algorithms for other problems. The research on the last problem, reconstruction of a binary tree from its traversals, was stimulated by a challenge proposed in a recent paper by Berkman et al. ( Highly Parallelizable Problems, STOC 89) to design doubly logarithmic time optimal parallel algorithms because a remarkably small number of such parallel algorithms exist
Recommended from our members
Advanced parallel programming models research and development opportunities.
There is currently a large research and development effort within the high-performance computing community on advanced parallel programming models. This research can potentially have an impact on parallel applications, system software, and computing architectures in the next several years. Given Sandia's expertise and unique perspective in these areas, particularly on very large-scale systems, there are many areas in which Sandia can contribute to this effort. This technical report provides a survey of past and present parallel programming model research projects and provides a detailed description of the Partitioned Global Address Space (PGAS) programming model. The PGAS model may offer several improvements over the traditional distributed memory message passing model, which is the dominant model currently being used at Sandia. This technical report discusses these potential benefits and outlines specific areas where Sandia's expertise could contribute to current research activities. In particular, we describe several projects in the areas of high-performance networking, operating systems and parallel runtime systems, compilers, application development, and performance evaluation
Recommended from our members
Some language issues in high performance computing: translation from fine-grained parallelism to coarse-grained parallelism.
Licorice extract inhibits the cGAS-STING pathway and protects against non-alcoholic steatohepatitis
Background: Inflammation and fibrosis are typical symptoms of non-alcoholic steatohepatitis (NASH), which is one of the most common chronic liver diseases. The cGAS-STING signaling pathway has been implicated in the progression of NASH, and targeting this pathway may represent a new therapeutic strategy. Licorice is a widely used herb with anti-inflammatory and liver-protective properties. In this study, we assessed the effect of licorice extract on the cGAS-STING pathway.Methods: Bone marrow-derived macrophages (BMDMs) were treated with licorice extract and then stimulated with HT-DNA, 2'3'-cGAMP, or other agonists to activate the cGAS-STING pathway. Quantitative real-time PCR and western blot were conducted to analyze whether licorice extract could affect the cGAS-STING pathway. Methionine and choline-deficient diet (MCD) was used to induce NASH in mice, which were treated with licorice extract (500Â mg/kg) by gavage and/or c-176 (15Â mg/kg) by intraperitoneal injection every 2Â days. After 6Â weeks of treatment, histological analysis of liver tissue was performed, along with measurements of plasma biochemical parameters.Results: Licorice extract inhibits cGAS-STING pathway activation. Mechanistically, it might function by inhibiting the oligomerization of STING. Treatment with licorice extract reduced inflammation and fibrosis in MCD diet-induced NASH mice models. Furthermore, we found that the therapeutic effect of combination treatment with licorice extract and C-176 (STING inhibitor) on the pathology and fibrosis of MCD diet-induced NASH models was similar to that of licorice extract or C-176 administered alone.Conclusion: Licorice extract can inhibit the cGAS-STING pathway and improve hepatic inflammation and fibrosis in NASH mice models. It strongly suggests that licorice extract may be a candidate therapeutic for NASH
Recommended from our members
Unified parallel C and the computing needs of Sandia National Laboratories.
As Sandia looks toward petaflops computing and other advanced architectures, it is necessary to provide a programming environment that can exploit this additional computing power while supporting reasonable development time for applications. Thus, they evaluate the Partitioned Global Address Space (PGAS) programming model as implemented in Unified Parallel C (UPC) for its applicability. They report on their experiences in implementing sorting and minimum spanning tree algorithms on a test system, a Cray T3e, with UPC support. They describe several macros that could serve as language extensions and several building-block operations that could serve as a foundation for a PGAS programming library. They analyze the limitations of the UPC implementation available on the test system, and suggest improvements necessary before UPC can be used in a production environment
Recommended from our members
PRAM C:a new programming environment for fine-grain and coarse-grain parallelism.
In the search for ''good'' parallel programming environments for Sandia's current and future parallel architectures, they revisit a long-standing open question. Can the PRAM parallel algorithms designed by theoretical computer scientists over the last two decades be implemented efficiently? This open question has co-existed with ongoing efforts in the HPC community to develop practical parallel programming models that can simultaneously provide ease of use, expressiveness, performance, and scalability. Unfortunately, no single model has met all these competing requirements. Here they propose a parallel programming environment, PRAM C, to bridge the gap between theory and practice. This is an attempt to provide an affirmative answer to the PRAM question, and to satisfy these competing practical requirements. This environment consists of a new thin runtime layer and an ANSI C extension. The C extension has two control constructs and one additional data type concept, ''shared''. This C extension should enable easy translation from PRAM algorithms to real parallel programs, much like the translation from sequential algorithms to C programs. The thin runtime layer bundles fine-grained communication requests into coarse-grained communication to be served by message-passing. Although the PRAM represents SIMD-style fine-grained parallelism, a stand-alone PRAM C environment can support both fine-grained and coarse-grained parallel programming in either a MIMD or SPMD style, interoperate with existing MPI libraries, and use existing hardware. The PRAM C model can also be integrated easily with existing models. Unlike related efforts proposing innovative hardware with the goal to realize the PRAM, ours can be a pure software solution with the purpose to provide a practical programming environment for existing parallel machines; it also has the potential to perform well on future parallel architectures
Reconstructing a Binary Tree from its Traversals in Doubly-Logarithmic CREW Time
We consider the following problem. For a binary tree T = (V; E) where V = f1; 2; :::; ng, given its inorder traversal and either its preorder or its postorder traversal, reconstruct the binary tree. We present a new parallel algorithm for this problem. Our algorithm requires O(n) space. The main idea of our algorithm is to reduce the reconstruction process to merging two sorted sequences. With the best parallel merging algorithms, our algorithm can be implemented in O(log log n) time using O( n log log n ) processors on the CREW PRAM (or in O(log n) time using O( n log n ) processors on the EREW PRAM). Our result provides one more example of a fundamental problem which can be solved by optimal parallel algorithms in O(log log n) time on the CREW PRAM. 1 Introduction We consider the problem of reconstructing a binary tree T = (V; E) with vertices f1; 2; :::; ng given its inorder traversal and either its preorder or its postorder traversal. It is well-known that a binary tree can..
Recommended from our members
Parallel phase model : a programming model for high-end parallel machines with manycores.
This paper presents a parallel programming model, Parallel Phase Model (PPM), for next-generation high-end parallel machines based on a distributed memory architecture consisting of a networked cluster of nodes with a large number of cores on each node. PPM has a unified high-level programming abstraction that facilitates the design and implementation of parallel algorithms to exploit both the parallelism of the many cores and the parallelism at the cluster level. The programming abstraction will be suitable for expressing both fine-grained and coarse-grained parallelism. It includes a few high-level parallel programming language constructs that can be added as an extension to an existing (sequential or parallel) programming language such as C; and the implementation of PPM also includes a light-weight runtime library that runs on top of an existing network communication software layer (e.g. MPI). Design philosophy of PPM and details of the programming abstraction are also presented. Several unstructured applications that inherently require high-volume random fine-grained data accesses have been implemented in PPM with very promising results