GENERATING MESSAGE-PASSING PROGRAMS FROM ABSTRACT SPECIFICATIONS BY PARTIAL EVALUATION

2005 ◽  
Vol 15 (03) ◽  
pp. 305-320 ◽  
Author(s):  
CHRISTOPH A. HERRMANN

This paper demonstrates how parallel programs with message-passing can be generated from abstract specifications embedded in the functional language MetaOCaml. The functional style permits to design parallel programs with a high degree of parameterization, so-called skeletons. Programmers who are unexperienced in parallelism can take such skeletons for a simple and safe generation of parallel applications. Since MetaOCaml also has efficient imperative features and an MPI interface, the entire program can be written in one language, without the need to use a language interface restricting the set of data objects which could be exchanged. The semantics of abstract specifications is expressed by an interpreter written in MetaOCaml. A cost model is defined by abstract interpretation of the specification. Partial evaluation of the interpreter with a specification, a feature which MetaOCaml provides, yields a parallel program. The partial evaluation process takes time on each MPI process directly before the execution of the application program, exploiting knowledge of the number of processes, the current process identifier and the communication structure. Our example is the specification of a divide-and-conquer skeleton which is used to compute the multiplication of multi-digit numbers using Karatsuba's algorithm.

1998 ◽  
Vol 8 (1) ◽  
pp. 23-60 ◽  
Author(s):  
P. W. TRINDER ◽  
K. HAMMOND ◽  
H.-W. LOIDL ◽  
S. L. PEYTON JONES

The process of writing large parallel programs is complicated by the need to specify both the parallel behaviour of the program and the algorithm that is to be used to compute its result. This paper introduces evaluation strategies: lazy higher-order functions that control the parallel evaluation of non-strict functional languages. Using evaluation strategies, it is possible to achieve a clean separation between algorithmic and behavioural code. The result is enhanced clarity and shorter parallel programs. Evaluation strategies are a very general concept: this paper shows how they can be used to model a wide range of commonly used programming paradigms, including divide-and-conquer parallelism, pipeline parallelism, producer/consumer parallelism, and data-oriented parallelism. Because they are based on unrestricted higher-order functions, they can also capture irregular parallel structures. Evaluation strategies are not just of theoretical interest: they have evolved out of our experience in parallelising several large-scale parallel applications, where they have proved invaluable in helping to manage the complexities of parallel behaviour. Some of these applications are described in detail here. The largest application we have studied to date, Lolita, is a 40,000 line natural language engineering system. Initial results show that for these programs we can achieve acceptable parallel performance, for relatively little programming effort.


2015 ◽  
Vol 50 (10) ◽  
pp. 280-298 ◽  
Author(s):  
Hugo A. López ◽  
Eduardo R. B. Marques ◽  
Francisco Martins ◽  
Nicholas Ng ◽  
César Santos ◽  
...  

1997 ◽  
Vol 43 (6-7) ◽  
pp. 373-390 ◽  
Author(s):  
Sam Lor ◽  
Hong Shen ◽  
Piyush Maheshwari

2011 ◽  
Vol 403-408 ◽  
pp. 780-786
Author(s):  
Rashmi G. Dukhi

DNA microarray analysis has become the most widely used functional genomics approach in the bioinformatics field. Biologists are vastly plagued by the enormous amount of unprecedented qualities of genome-wide data produced by the DNA Microarray experiment.Clustering is the process of grouping data objects into set of disjoint classes called clusters so that objects within a class are highly similar with one another and dissimilar with the objects in other classes. It is presently the far most used method for gene expression analysis which provides a divide-and–conquer strategy to extract meaningful information from expression profile.In transcriptomics,clustering is used to build groups of genes with related expression patterns (also known as coexpressed genes). Often such groups contain functionally related proteins, such as enzymes for a specific pathway, or genes that are co-regulated. This paper presents a review on the recently development of microarray clustering techniques followed by the different categories of gene expression data clustering.


2020 ◽  
Vol 34 (10) ◽  
pp. 13851-13852
Author(s):  
Junkyu Lee

This paper presents a systematic way of decomposing a limited memory influence diagram (LIMID) to a tree of single-stage decision problems, or submodels and solving it by message passing. The relevance in LIMIDs is formalized by the notion of the partial evaluation of the maximum expected utility, and the graph separation criteria for identifying submodels follow. The submodel decomposition provides a graphical model approach for updating the beliefs and propagating the conditional expected utilities for solving LIMIDs with the worst-case complexity bounded by the maximum treewidth of the individual submodels.


Sign in / Sign up

Export Citation Format

Share Document