scispace - formally typeset
Search or ask a question
Topic

Software portability

About: Software portability is a research topic. Over the lifetime, 8987 publications have been published within this topic receiving 164922 citations. The topic is also known as: portability.


Papers
More filters
Book ChapterDOI
19 Jun 2016
TL;DR: It is shown that the results from developing a higher-level programming abstraction for parallelism in C++ enable performance at least as good as the comparable base-line benchmarks while providing a uniform programming API on all compared target architectures.
Abstract: On the way to Exascale, programmers face the increasing challenge of having to support multiple hardware architectures from the same code base. At the same time, portability of code and performance are increasingly difficult to achieve as hardware architectures are becoming more and more diverse. Today’s heterogeneous systems often include two or more completely distinct and incompatible hardware execution models, such as GPGPU’s, SIMD vector units, and general purpose cores which conventionally have to be programmed using separate tool chains representing non-overlapping programming models. The recent revival of interest in the industry and the wider community for the C++ language has spurred a remarkable amount of standardization proposals and technical specifications in the arena of concurrency and parallelism. This recently includes an increasing amount of discussion around the need for a uniform, higher-level abstraction and programming model for parallelism in the C++ standard targeting heterogeneous and distributed computing. Such an abstraction should perfectly blend with existing, already standardized language and library features, but should also be generic enough to support future hardware developments. In this paper, we present the results from developing such a higher-level programming abstraction for parallelism in C++ which aims at enabling code and performance portability over a wide range of architectures and for various types of parallelism. We present and compare performance data obtained from running the well-known STREAM benchmark ported to our higher level C++ abstraction with the corresponding results from running it natively. We show that our abstractions enable performance at least as good as the comparable base-line benchmarks while providing a uniform programming API on all compared target architectures.

41 citations

Journal ArticleDOI
TL;DR: A novel deep learning network is constructed, Hybrid Deep Learning Network (HDLN), and used to detect code injection attacks on mobile phones, which outperforms those with other traditional classifiers and gets higher average precision than other detection methods.

41 citations

Proceedings ArticleDOI
29 May 2013
TL;DR: This work proposes to address this issue by leveraging well-known techniques used in superscalar processors to perform runtime memory disambiguation, and demonstrates significant performance improvements for a moderate increase in area while retaining portability among HLS tools.
Abstract: Research on High-Level Synthesis has mainly focused on applications with statically determinable characteristics and current tools often perform poorly in presence of data-dependent memory accesses. The reason is that they rely on conservative static scheduling strategies, which lead to inefficient implementations. In this work, we propose to address this issue by leveraging well-known techniques used in superscalar processors to perform runtime memory disambiguation. Our approach, implemented as a source-to-source transformation at the C level, demonstrates significant performance improvements for a moderate increase in area while retaining portability among HLS tools.

41 citations

Patent
24 Jun 2010
TL;DR: In this paper, the authors present a configuration of a computing device featuring a display unit with a resource-conserving processor that may be used independently (e.g., as a tablet), but may be connected to a base unit featuring a resource intensive processor.
Abstract: Computing devices are often designed in view of a particular usage scenario, but may be unsuitable for usage in other computing scenarios. For example, a notebook computer with a large display, an integrated keyboard, and a high-performance processor suitable for many computing tasks may be heavy, large, and power-inefficient; and a tablet lacking a keyboard and incorporating a low-powered processor may improve portability but may present inadequate performance for many tasks. Presented herein is a configuration of a computing device featuring a display unit with a resource-conserving processor that may be used independently (e.g., as a tablet), but that may be connected to a base unit featuring a resource-intensive processor. The operating system of the device may accordingly transition between a resource-intensive computing environment and a resource-conserving computing environment based on the connection with the base unit, thereby satisfying the dual roles of workstation and portable tablet device.

41 citations

Proceedings ArticleDOI
02 Jul 2002
TL;DR: This paper shows how regular shrink-wrapped applications can be migrated by developing a virtualizing operating system (vOS), residing on top of Windows 2000 that injects stock applications with the virtualizing software.
Abstract: Process migration has been used to perform specialized tasks, such as load sharing and checkpoint/restarting long running applications. Implementation typically consists of modifications to existing applications and the creation of specialized support systems, which limit the applicability of the methodology. Off the shelf applications have not benefited from process migration technologies, mainly due to the lack of an effective generalized methodology and facility. The benefits of process migration include mobility, checkpointing, relocation, scheduling and on the fly maintenance. This paper shows how regular shrink-wrapped applications can be migrated. The approach to migration is to virtualize the application by injecting functionality into running applications and operating systems. Using this scheme, we separate the physical resource bindings of the application and replace it with virtual bindings. This technique is referred to as virtualization. We have developed a virtualizing operating system (vOS), residing on top of Windows 2000 that injects stock applications with the virtualizing software. It coordinates activities across multiple platforms providing new functionality to the existing applications. The vOS makes it possible to build communities of systems that cooperate to run applications and share resources non-intrusively while retaining application binary compatibility.

41 citations


Network Information
Related Topics (5)
Software
130.5K papers, 2M citations
90% related
Cloud computing
156.4K papers, 1.9M citations
83% related
The Internet
213.2K papers, 3.8M citations
83% related
Wireless sensor network
142K papers, 2.4M citations
82% related
Artificial neural network
207K papers, 4.5M citations
82% related
Performance
Metrics
No. of papers in the topic in previous years
YearPapers
20241
2023580
20221,257
2021290
2020308
2019381