parallelism is essential in any programming environment used to produce simulations and interactive games. These are just the sorts of program most children would like to produce. Unfortunately parallel programming is...
详细信息
ISBN:
(纸本)0780382250
parallelism is essential in any programming environment used to produce simulations and interactive games. These are just the sorts of program most children would like to produce. Unfortunately parallel programming is hard. Icicle, a programming by demonstration environment, supports the production of the most common forms of parallelism in a straight forward way and allows complete control over parallel behaviour using more advanced features.
The emergence of System-on-Chip (SOC) design shows the growing popularity of the integration of multiple-processors into one chip. In this paper, we propose that high-level abstraction of parallel programming like Ope...
详细信息
ISBN:
(纸本)0769520170
The emergence of System-on-Chip (SOC) design shows the growing popularity of the integration of multiple-processors into one chip. In this paper, we propose that high-level abstraction of parallel programming like OpenMP is suitable for chip multiprocessors. For SOCs, the heterogeneity exists within one chip such that it may have different types of multiprocessors, e.g. RISC-like processors or DSP-like processors. Incorporating different processors into OpenMP is challenging. We present our solutions to extend OpenMP directives to tackle this heterogeneity. Several optimization techniques are proposed to utilize advanced architecture features of our target SOC, the Software Scalable System on Chip (3SoC). Preliminary performance evaluation shows scalable speedup using different types of processors and performance improvement through individual optimization.
Visual programming is a very promising approach for parallel programming because of the complexity in making parallel programs. There were several attempts to provide a visual environment for making parallel programs ...
详细信息
ISBN:
(纸本)0769520189
Visual programming is a very promising approach for parallel programming because of the complexity in making parallel programs. There were several attempts to provide a visual environment for making parallel programs but only achieved a limited success. The commonly used technique is to draw some graphs whose nodes represent modules and arcs represent some communication paths. The graphs are then annotated by attaching some conventional programming codes. In practice, this approach can be useful but in a limited number of cases. To improve the situation, a new visual programming environment is being developed that allows the creation of programs from algorithmic "film " specifications with a minimal use of text in making programs. In this environment, there are six different groups of frames for the programmer to watch, edit, and specify operations. One of them is for specifiying I/O operations and communication between software components in a complex program. Specifying communications among processes in a parallel program is just a partial case in this subsystem. This paper presents a visual environment for specifying communication among processes in a parallel program using a language of micro-icons. As an example, the scatter and gather types of collective communication are presented based on the master/slave scheme of computation. These examples show how to define message-passing communication without using text-based programming style.
Final Group Projects are an integral part of the graduate mechatronics course, "Introduction to Mechatronics," in the Woodruff School of Mechanical Engineering at Georgia Tech. Students are able to develop b...
详细信息
ISBN:
(纸本)0780377591
Final Group Projects are an integral part of the graduate mechatronics course, "Introduction to Mechatronics," in the Woodruff School of Mechanical Engineering at Georgia Tech. Students are able to develop both practical and theoretical understanding of mechatronics while working on their Final Group Projects. They also develop interpersonal and communication skills necessary to work in a multi-disciplinary field. To assist students, a framework has been developed to help them realize goals they propose for their Final Group Project. It helps them to work effectively within a team environment and present their projects utilizing different media outlets, such as writing technical reports, developing web pages for their Final Group Projects, and making oral presentations. This framework includes lecture topics covered in class, project requirements, grading methods, material resources, and support from graduate teaching assistants, electronic, and machine shop. In this paper, the framework and example projects demonstrating its effectiveness will be presented.
Commodities-built clusters, a low cost alternative for distributed parallel processing, brought high-performance computing to a wide range of users. However the existing widespread tools for distributed parallel progr...
详细信息
ISBN:
(纸本)0769520464
Commodities-built clusters, a low cost alternative for distributed parallel processing, brought high-performance computing to a wide range of users. However the existing widespread tools for distributed parallel programming, such as messaging passing libraries, does not attend new software engineering requirements that nave emerged due to increase in complexity of applications. Haskell(#) is a parallel programming language intending to reconcile higher abstraction and modularity with scalable performance. In this paper it is demonstrated the use of Haskell(#) in the programming of three SPMD benchmark programs, which have lower-level MPI implementations available.
Large tree structured optimization problems can be solved efficiently with decomposition methods. We present a parallel and distributed Java implementation and compare a synchronous version with an asynchronous one. W...
详细信息
ISBN:
(纸本)0769520189
Large tree structured optimization problems can be solved efficiently with decomposition methods. We present a parallel and distributed Java implementation and compare a synchronous version with an asynchronous one. We describe a Java distributed active tree middleware on top of which the algorithm has been implemented. In the algorithmic layer, active tree node objects perform loop iterations and interact via coordination objects provided by the coordination layer which has been implemented on top of Java Remote Method Invocation. The programming model allows for an object oriented, data parallel, shared memory formulation of parallel and distributed algorithms operating on tree structures, and is extensible to other structures as well. We discuss our implementation strategy and experimental results obtained on a Beowulf SMP-cluster and on a network of workstations. The optimization algorithm is part of a high performance decision support tool for asset and liability management.
Despite the enormous amount of research and development work in the area of parallel computing, it is a common observation that simultaneous performance and ease-of-use are elusive. We believe that ease-of-use is crit...
详细信息
ISBN:
(纸本)0769519652
Despite the enormous amount of research and development work in the area of parallel computing, it is a common observation that simultaneous performance and ease-of-use are elusive. We believe that ease-of-use is critical for many end users, and thus seek performance enhancing techniques that can be easily retrofitted to existing parallel applications. In a previous paper we have presented MPI process swapping, a simple add-on to the MPI programming environment that can improve performance in shared computing environments. MPI process swapping requires as few as three lines of source code change to an existing application. In this paper we explore a question that we had left open in our previous work: based on which policies should processes be swapped for best performance? Our results show that, with adequate swapping policies, MPI process swapping can provide substantial performance benefits with very limited implementation effort.
In previous work we have introduced JavaSymphony, a system whose purpose is to simplify the development of distributed and parallel Java applications. JavaSymphony is a Java library that allows to control parallelism,...
详细信息
ISBN:
(纸本)076951880X
In previous work we have introduced JavaSymphony, a system whose purpose is to simplify the development of distributed and parallel Java applications. JavaSymphony is a Java library that allows to control parallelism, load balancing, and locality at a high level. Objects can be explicitly distributed and migrated within virtual architectures, which impose a virtual hierarchy on a distributed system of physical computing nodes. In this paper we present the design of the JavaSymphony Runtime System and the JavaSymphony Shell. Moreover we discuss details about an agent-based implementation of the JavaSymphony Runtime System which comprises the Network Agent, Object Agent, and Event Agent. We present a detailed comparison of the functionality provided by JavaSymphony with several related systems.
This paper describes a system software design for multiple instruction stream control in a massively parallel associative computing environment. The purpose of providing multiple instruction stream control is to incre...
详细信息
暂无评论