The Experts below are selected from a list of 12831 Experts worldwide ranked by ideXlab platform

Paul Chow - One of the best experts on this subject based on the ideXlab platform.

  • accelerating apache spark with fpgas
    Concurrency and Computation: Practice and Experience, 2019
    Co-Authors: Ehsan Ghasemi, Paul Chow
    Abstract:

    Summary Apache Spark has become one of the most popular engines for big data processing. Spark provides a platform-independent, high-abstraction programming paradigm for large-scale data processing by leveraging the Java framework. Though it provides Software Portability across various machines, Java also limits the performance of distributed environments, such as Spark. While it may be unrealistic to rewrite platforms like Spark in a faster language, a more viable approach to mitigate its poor performance is to accelerate the computations while still working within the Java-based framework. This paper demonstrates the feasibility of incorporating Field-Programmable Gate Array (FPGA) acceleration into Spark and presents the performance benefits and bottlenecks of our FPGA-accelerated Spark environment using a MapReduce implementation of the k-means clustering algorithm, to show that acceleration is possible even when using a hardware platform that is not well optimized for performance. An important feature of our approach is that the use of FPGAs is completely transparent to the user through the use of library functions, which is a common way by which users access functions provided by Spark. Power users can further develop other computations using high-level synthesis.

  • accelerating apache spark big data analysis with fpgas
    Field-Programmable Custom Computing Machines, 2016
    Co-Authors: Ehsan Ghasemi, Paul Chow
    Abstract:

    Apache Spark has become one of the most popular engines for big data processing. Spark provides a platform-independent, high-abstraction programming paradigm for large-scale data processing by leveraging the Java frame-work. Though it provides Software Portability across various machines, Java also limits the performance of distributed environments, such as Spark. While it may be unrealistic to rewrite platforms like Spark in a faster language, a more viable approach to mitigate its poor performance is to accelerate the computations while still working within the Java-based framework. This work demonstrates the feasibility of incorporating FPGA acceleration into Spark, and uses a MapReduce implementation of the k-means clustering algorithm to show that acceleration is possible even when using a hardware platform that is not well-optimized for performance. An important feature of our approach is that the use of FPGAs is completely transparent to the user through the use of library functions, which is a common way by which users access functions provided by Spark. Power users can further develop other computations using high-level synthesis.

Ehsan Ghasemi - One of the best experts on this subject based on the ideXlab platform.

  • accelerating apache spark with fpgas
    Concurrency and Computation: Practice and Experience, 2019
    Co-Authors: Ehsan Ghasemi, Paul Chow
    Abstract:

    Summary Apache Spark has become one of the most popular engines for big data processing. Spark provides a platform-independent, high-abstraction programming paradigm for large-scale data processing by leveraging the Java framework. Though it provides Software Portability across various machines, Java also limits the performance of distributed environments, such as Spark. While it may be unrealistic to rewrite platforms like Spark in a faster language, a more viable approach to mitigate its poor performance is to accelerate the computations while still working within the Java-based framework. This paper demonstrates the feasibility of incorporating Field-Programmable Gate Array (FPGA) acceleration into Spark and presents the performance benefits and bottlenecks of our FPGA-accelerated Spark environment using a MapReduce implementation of the k-means clustering algorithm, to show that acceleration is possible even when using a hardware platform that is not well optimized for performance. An important feature of our approach is that the use of FPGAs is completely transparent to the user through the use of library functions, which is a common way by which users access functions provided by Spark. Power users can further develop other computations using high-level synthesis.

  • accelerating apache spark big data analysis with fpgas
    Field-Programmable Custom Computing Machines, 2016
    Co-Authors: Ehsan Ghasemi, Paul Chow
    Abstract:

    Apache Spark has become one of the most popular engines for big data processing. Spark provides a platform-independent, high-abstraction programming paradigm for large-scale data processing by leveraging the Java frame-work. Though it provides Software Portability across various machines, Java also limits the performance of distributed environments, such as Spark. While it may be unrealistic to rewrite platforms like Spark in a faster language, a more viable approach to mitigate its poor performance is to accelerate the computations while still working within the Java-based framework. This work demonstrates the feasibility of incorporating FPGA acceleration into Spark, and uses a MapReduce implementation of the k-means clustering algorithm to show that acceleration is possible even when using a hardware platform that is not well-optimized for performance. An important feature of our approach is that the use of FPGAs is completely transparent to the user through the use of library functions, which is a common way by which users access functions provided by Spark. Power users can further develop other computations using high-level synthesis.

Jeremy Kepner - One of the best experts on this subject based on the ideXlab platform.

  • Software technologies for high performance parallel signal processing
    2003
    Co-Authors: Jeremy Kepner, James Lebak
    Abstract:

    ■ Real-time signal processing consumes the majority of the world’s computing power. Increasingly, programmable parallel processors are used to address a wide variety of signal processing applications (e.g., scientific, video, wireless, medical, communication, encoding, radar, sonar, and imaging). In programmable systems the major challenge is no longer the speed of the hardware but the complexity of optimized Software. Specifically, the key technical hurdle lies in mapping an algorithm onto a parallel computer in a general manner that preserves performance while providing Software Portability. We have developed the Parallel Vector Library (PVL) to allow signal processing algorithms to be written with high-level mathematical constructs that are independent of the underlying parallel mapping. Programs written using PVL can be ported to a wide range of parallel computers without sacrificing performance. Furthermore, the mapping concepts in PVL provide the infrastructure for enabling new capabilities such as fault tolerance and self-optimization. This article discusses PVL with a particular emphasis on quantitative comparisons with standard parallel signal programming practices.

  • pvl an object oriented Software library for parallel signal processing
    Foundations of Computer Science, 2001
    Co-Authors: Edward Rutledge, Jeremy Kepner
    Abstract:

    Real-time signal processing consumes the majority of the world’s computing power. Increasingly, programmable parallel microprocessors are used to address a wide variety of signal processing applications (e.g. scientific, video, wireless, medical, communication, encoding, radar, sonar and imaging). In programmable systems the major challenge is no longer hardware but Software. Specifically, the key technical hurdle lies in mapping (i.e., placement and routing) of an algorithm onto a parallel computer in a general manner that preserves Software Portability. We have developed the Parallel Vector Library (PVL) to allow signal processing algorithms to be written using high level Matlab like constructs that are independent of the underlying parallel mapping. Programs written using PVL can be ported to a wide range of parallel computers without sacrificing performance. Furthemore, the mapping concepts in PVL provide the infrastructure for enabling new capabilities such as fault tolerance, dynamic scheduling and self-optimization. This presentation discusses PVL with particular emphasis on quantitative comparisons with standard parallel signal programming practices.

James D Mooney - One of the best experts on this subject based on the ideXlab platform.

  • issues in the specification and measurement of Software Portability
    2001
    Co-Authors: James D Mooney
    Abstract:

    Portability is becoming universally recognized as a desirable attribute for most Software products, and porting is a recognized technique for extending the value and life of a Software unit. However, most porting is still done by ad hoc techniques. Portability is not addressed explicitly either by Software engineering curricula or by common Software development methodologies. Moreover, there are few reports in the literature of academic research focused on Portability issues. Many studies deal with reuse issues, and porting is a special case of reuse. However, these studies have not addressed the specialized problems of reuse across substantially different operating environments. A Portability research group has been established at West Virginia University to help meet this need. Our overall goal is to develop improved methodologies for addressing Portability in a cost-effective way for a wide range of Software. A major obstacle to meeting this goal is the lack of established mechanisms to specify and measure Portability. In this presentation we propose some initial approaches to the development of such mechanisms. We first describe briefly the issues that arise in developing portable Software, and in reimplementing or porting existing Software. This analysis is used to identify specification types and metrics that may aid in making effective Portability-related decisions when performing these activities. We argue the need for specifications to describe interfaces and environmental attributes and to characterize the “degree of Portability” of a Software unit. Some approaches to formalizing these concepts are discussed. Cost metrics for Software development and porting activities are also discussed, and we consider their use in comparing development and implementation alternatives. A formal definition for degree of Portability is proposed, and some relevant Software quality measures are briefly considered. Some simple examples are also presented to illustrate these concepts. This research is supported in part by the National Science Foundation, Grant No. CCR-9204461. 2. Specification & Measurement of Portability 15th International Conference on Software Engineering

  • a course in Software Portability
    Technical Symposium on Computer Science Education, 1992
    Co-Authors: James D Mooney
    Abstract:

    This paper describes an experimental course on the topic of Software Portability, and initial experience in teaching this course. With the continuing proliferation of both applications and computing environments, the need for Portability is being increasingly recognized. A large proportion of the Software now being developed will eventually need to be ported to new environments. Yet this topic is missing from most computer science and Software engineering curricula.The course described here was designed to explore practical issues in the development of portable Software. Lectures and discussions on Portability topics are combined with the ongoing development of a simple Software project designed to expose a variety of Portability problems. During the course the project is ported to several environments and redesigned to improve its Portability.This course has been taught experimentally with encouraging results. Student assignments have used novel and effective methods to overcome Portability barriers. Feedback from student indicates that they have become more aware of Portability issues to be considered in Software development, and have gained experience with system interface issues in several programming environments.

Teresa Mendes - One of the best experts on this subject based on the ideXlab platform.

  • the aida approach to educational Software Portability
    Journal of research on computing in education, 1995
    Co-Authors: Antonio Jose Mendes, Teresa Mendes
    Abstract:

    AbstractSeveral research and development projects have attempted to make educational Software more portable. However, in most cases, packages are developed with a particular target group in mind. It is uncommon during a Software package’s development for the developers to introduce characteristics that facilitate the Software’s use in different settings and, eventually, in other countries. Educational Software Portability is usually seen as a desirable characteristic, but in many cases no special development strategies, techniques, or tools are used to achieve that characteristic. Consequently, if someone wants to use the package in situations other than those for which it was intended, he or she must go through a difficult and expensive process of adaptation and translation. In this article, motivations for Portability and some limiting factors of Portability are analyzed. This article also describes the approach used in the AIDA authoring environment to facilitate translation and cultural adaptation.