Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Kostadin Damevski is active.

Publication


Featured researches published by Kostadin Damevski.


ieee international conference on high performance computing data and analytics | 2006

A Component Architecture for High-Performance Scientific Computing

Benjamin A. Allan; Robert C. Armstrong; David E. Bernholdt; Felipe Bertrand; Kenneth Chiu; Tamara L. Dahlgren; Kostadin Damevski; Wael R. Elwasif; Thomas Epperly; Madhusudhan Govindaraju; Daniel S. Katz; James Arthur Kohl; Manoj Kumar Krishnan; Gary Kumfert; J. Walter Larson; Sophia Lefantzi; Michael J. Lewis; Allen D. Malony; Lois C. Mclnnes; Jarek Nieplocha; Boyana Norris; Steven G. Parker; Jaideep Ray; Sameer Shende; Theresa L. Windus; Shujia Zhou

The Common Component Architecture (CCA) provides a means for software developers to manage the complexity of large-scale scientific simulations and to move toward a plug-and-play environment for high-performance coputing. In the scientific computing context, component models also promote collaboration using independently developed software, thereby allowing particular individals or groups to focus on the aspects of greatest interest to them. The CCA supports parallel and distributed coputing as well as local high-performance connections between components in a language-independent manner. The design places minimal requirements on components and thus facilitates the integration of existing code into the CCA environment. The CCA model imposes minimal ovehead to minimize the impact on application performance. The focus on high performance distinguishes the CCA from most other component models. The CCA is being applied within an increasing range of disciplines, including cobustion research, global climate simulation, and computtional chemistry.


ieee international conference on high performance computing data and analytics | 2005

M × N Data Redistribution Through Parallel Remote Method Invocation

Kostadin Damevski; Steven G. Parker

Components can be a useful tool in software development, including the development of scientific computing applications. Many scientific applications require parallel execution, but commodity component models based on remote method invocation do not directly support the notion of parallel components. Parallel components raise questions about the semantics of method invocations and the mechanics of parallel data redistribution involving these components. Allowing parallel components to exist within a component framework comes at very little extra cost to the framework designer. However, the interaction semantics (i.e. method invocations) between two parallel components or between a parallel and non-parallel component can be complex and should require support from the underlying run-time system. The parallel data redistribution problem comes about when in order to increase efficiency, data are subdivided among cooperating parallel tasks within one component. When two or more components of this type are required to perform a separate computation on the same data, this data distribution must be decoded and mapped from the first component to the second components specification. We demonstrate a method to handle parallel method invocation and perform automatic data redistribution using the code generation process of an interface definition language compiler. The generated code and run-time system accomplish the necessary data transfers and provide consistent behavior to method invocation. We describe the implementation of and semantics of parallel remote method invocation. We describe how collective method calls can be used to provide coherent interactions between multiple components. Several results and benchmarks are discussed.


european conference on parallel processing | 2004

Imprecise Exceptions in Distributed Parallel Components

Kostadin Damevski; Steven G. Parker

Modern microprocessors have sacrificed the exactness of exceptions for improved performance long ago. This is a side effect of reordering instructions so that the microprocessor can execute instructions which were not to be executed due to an exception. By throwing more circuits at the problem, microprocessors are designed so that they are able to roll back to the instruction causing the exception. However, some microprocessors, like the HP Alpha, do not roll back and impose a paradigm of inaccurate exceptions. This decision can reduce circuit complexity and increase speed. We propose a similar method of handling exceptions in a component environment that achieves high performance by sacrificing exception accuracy when dealing with parallel Single Program Multiple Data (SPMD) components. The particular domain this design is intended for is high performance computing, which requires maximum resource use and efficiency. A performance-centric way to handle exceptions is explained as well as additional methodology to enforce exception strictness if required.


international parallel and distributed processing symposium | 2008

Result reuse in design space exploration: A study in system support for interactive parallel computing

Siu Man Yau; Kostadin Damevski; Vijay Karamcheti; Steven G. Parker; Denis Zorin

This paper presents a system supporting reuse of simulation results in multi-experiment computational studies involving independent simulations and explores the benefits of such reuse. Using a SCIRun-based defibrillator device simulation code (DefibSim) and the SimX system for computational studies, this paper demonstrates how aggressive reuse between and within computational studies can enable interactive rates for such studies on a moderate-sized 128-node processor cluster; a brute-force approach to the problem would require two thousand nodes or more on a massively parallel machine for similar performance. Key to realizing these performance improvements is exploiting optimization opportunities that present themselves at the level of the overall workflow of the study as opposed to focusing on individual simulations. Such global optimization approaches are likely to become increasingly important with the shift towards interactive and universal parallel computing.


acm sigplan symposium on principles and practice of parallel programming | 2009

Application-aware management of parallel simulation collections

Siu Man Yau; Vijay Karamcheti; Denis Zorin; Kostadin Damevski; Steven G. Parker

This paper presents a system deployed on parallel clusters to manage a collection of parallel simulations that make up a computational study. It explores how such a system can extend traditional parallel job scheduling and resource allocation techniques to incorporate knowledge specific to the study. Using a UINTAH-based helium gas simulation code (ARCHES) and the SimX system for multi-experiment computational studies, this paper demonstrates that, by using application-specific knowledge in resource allocation and scheduling decisions, one can reduce the run time of a computational study from over 20 hours to under 4.5 hours on a 32-processor cluster, and from almost 11 hours to just over 3.5 hours on a 64-processor cluster.


Proceedings of the 2007 symposium on Component and framework technology in high-performance and scientific computing | 2007

Practical parallel remote method invocation for the Babel compiler

Kostadin Damevski; Keming Zhang; Steven G. Parker

Parallel components are types of software components that contain Single Program Multiple Data (SPMD) parallel code and are used and defined by the Common Component Architecture (CCA) component model. Parallel Remote Method Invocation (PRMI) defines a communication paradigm between two parallel components of this kind. Within the CCA community, we define PRMI to include two parts: collective invocations and data redistribution. In this paper, wedevise a way to build PRMI onto the Babel compiler, which is a central supporting technology of CCA. We perform this integration cleanly, by preserving Babels design principles and allowing user choice in the wire protocol and parallel communication library. In addition to this, we define a novel set of synchronization options for PRMI that allow trading off synchronization for better performance while notendangering the accuracy of the result.


high performance distributed computing | 2007

CCALoop: scalable design of a distributed component framework

Kostadin Damevski; Ashwin Deepak Swaminathan; Steven G. Parker

In recent years, component technology has been a successful methodology for large-scale commercial software development. Component technology encapsulates a set of frequently used functions into a component and makes the implementation transparent to the users. Application developers typically use a group of components, connecting them to create an executable application. The components are managed by a component framework that exists on each computing node where components may be instantiated or executed. A component framework provides a set of services to components: locating other components in the system, instantiating, connecting, executing, reporting error messages or results, etc. It can also provide a user interface, often a Graphical User Interface (GUI), to compose, execute and monitor components. In order to manage a large component application that uses many components and utilizes sets of distributed computing resources, one or more component frameworks have to exist on each separate computing resource. This requires that multiple frameworks cooperate in some fashion to manage and monitor a large component application. Component technology is becoming increasingly popular for large-scale scientific computing in helping to tame the software complexity required in coupling multiple disciplines, multiple scales, and/or multiple physical phenomena. The Common Component Architecture (CCA) [2] is a component model that was designed to fit the needs of the scientific computing community by imposing low overhead and supporting parallel components. The CCA standard also provides for the inclusion of Single Program Multiple Data (SPMD) parallel components. These components exists in several address spaces and are internally managed by message passing (e.g. Message Passing Interface (MPI)). A compliant framework needs to provide the facilities to instantiate, manage, and execute this novel type of component.


high level parallel programming models and supportive environments | 2004

SCIRun2: a CCA framework for high performance computing

Keming Zhang; Kostadin Damevski; Venkatanand Venkatachalapathy; Steven G. Parker


international parallel and distributed processing symposium | 2005

Data redistribution and remote method invocation in parallel component architectures

F. Bertrand; Randall Bramley; David E. Bernholdt; James Arthur Kohl; Alan Sussman; Jay Walter Larson; Kostadin Damevski


international parallel and distributed processing symposium | 2006

Data redistribution and remote method invocation for coupled components

Felipe Bertrand; Randall Bramley; David E. Bernholdt; James Arthur Kohl; Alan Sussman; Jay Walter Larson; Kostadin Damevski

Collaboration


Dive into the Kostadin Damevski's collaboration.

Top Co-Authors

Avatar

David E. Bernholdt

Oak Ridge National Laboratory

View shared research outputs
Top Co-Authors

Avatar

James Arthur Kohl

Oak Ridge National Laboratory

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Jay Walter Larson

Argonne National Laboratory

View shared research outputs
Top Co-Authors

Avatar

Randall Bramley

Indiana University Bloomington

View shared research outputs
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge