277,837 research outputs found
Process-Oriented Parallel Programming with an Application to Data-Intensive Computing
We introduce process-oriented programming as a natural extension of
object-oriented programming for parallel computing. It is based on the
observation that every class of an object-oriented language can be instantiated
as a process, accessible via a remote pointer. The introduction of process
pointers requires no syntax extension, identifies processes with programming
objects, and enables processes to exchange information simply by executing
remote methods. Process-oriented programming is a high-level language
alternative to multithreading, MPI and many other languages, environments and
tools currently used for parallel computations. It implements natural
object-based parallelism using only minimal syntax extension of existing
languages, such as C++ and Python, and has therefore the potential to lead to
widespread adoption of parallel programming. We implemented a prototype system
for running processes using C++ with MPI and used it to compute a large
three-dimensional Fourier transform on a computer cluster built of commodity
hardware components. Three-dimensional Fourier transform is a prototype of a
data-intensive application with a complex data-access pattern. The
process-oriented code is only a few hundred lines long, and attains very high
data throughput by achieving massive parallelism and maximizing hardware
utilization.Comment: 20 pages, 1 figur
Quasar: A Programming Framework for Rapid Prototyping
We present a new programming framework, Quasar, which facilitates GPU programming. Our high-level programming language relieves the developer of all implementation details such that he can focus on the algorithm and the required accuracy. The proposed programming framework consists of a simple high-level programming language, an advanced compiler system, a runtime system and IDE.
The Quasar language is a high level scripting language with an easy to learn syntax similar to python and MATLAB. This makes Quasar well suited for fast development and prototyping. A Quasar program is first processed by a front-end compiler that automatically detects serial and parallel loops that could be accelerated by heterogeneous hardware. In a second compilation phase, a number of back-end compilers processes the output of the front-end compiler, thus generating C++, OpenCL or CUDA code. Based on the generated code the runtime system can dynamically switch between CPU and GPU. This automatic scheduling at runtime is done by analyzing the load of all devices, the memory transfer cost and the complexity of the task. This way, the programmer is relieved from complicated implementation issues that are common for programming heterogeneous hardware.
We validated the use of Quasar on a number of complex image processing and computer vision algorithms. These programs range from denoising to automated image segmentation applications. Using Quasar we get speed-up factors of 4 to over 60, depending on the application. All results were achieved using an NVIDIA GeForce M750
GCC-Plugin for Automated Accelerator Generation and Integration on Hybrid FPGA-SoCs
In recent years, architectures combining a reconfigurable fabric and a
general purpose processor on a single chip became increasingly popular. Such
hybrid architectures allow extending embedded software with application
specific hardware accelerators to improve performance and/or energy efficiency.
Aiding system designers and programmers at handling the complexity of the
required process of hardware/software (HW/SW) partitioning is an important
issue. Current methods are often restricted, either to bare-metal systems, to
subsets of mainstream programming languages, or require special coding
guidelines, e.g., via annotations. These restrictions still represent a high
entry barrier for the wider community of programmers that new hybrid
architectures are intended for. In this paper we revisit HW/SW partitioning and
present a seamless programming flow for unrestricted, legacy C code. It
consists of a retargetable GCC plugin that automatically identifies code
sections for hardware acceleration and generates code accordingly. The proposed
workflow was evaluated on the Xilinx Zynq platform using unmodified code from
an embedded benchmark suite.Comment: Presented at Second International Workshop on FPGAs for Software
Programmers (FSP 2015) (arXiv:1508.06320
An Evaluation of the X10 Programming Language
As predicted by Moore\u27s law, the number of transistors on a chip has been doubled approximately every two years. As miraculous as it sounds, for many years, the extra transistors have massively benefited the whole computer industry, by using the extra transistors to increase CPU clock speed, thus boosting performance. However, due to heat wall and power constraints, the clock speed cannot be increased limitlessly. Hardware vendors now have to take another path other than increasing clock speed, which is to utilize the transistors to increase the number of processor cores on each chip. This hardware structural change presents inevitable challenges to software structure, where single thread targeted software will not benefit from newer chips or may even suffer from lower clock speed. The two fundamental challenges are: 1. How to deal with the stagnation of single core clock speed and cache memory. 2. How to utilize the additional power generated from more cores on a chip. Most software programming languages nowadays have distributed computing support, such as C and Java [1]. Meanwhile, some new programming languages were invented from scratch just to take advantage of the more distributed hardware structures. The X10 Programming Language is one of them. The goal of this project is to evaluate X10 in terms of performance, programmability and tool support
Quiz Button with Score Control and Display using Atmega16Microcontroller
To create Quiz Button with Score Control and Display using Atmega16
Microcontroller is to design and to produce its hardware and software, and also
gaining knowledge of its performance.
Quiz Button with Score Control and Display using Atmega16 Microcontroller
hardware was designed with an operator circuit using six push buttons as input and
three 0.56-inches seven segment as output, three group name and three digit score
display circuits using four 3-inches seven segment as output and one push button as
input, and also a sound producing buzzer which is included in the minimum system
circiut. The software to control the Atmega16 microcontroller uses C programming
language and a CodeVision AVR compiler. This software only has one main program
without any sub-program.
To summarize it all, the hardware production was a success, using Atmega16
microcontroller minimum system and other instrument as needed. Quiz Button with
Score Control and Display using Atmega16 Microcontroller’s software is created
using CodeVision AVR. This tool counts each group’s score based on operator’s
input, displaying the score on each group’s displays, and control the lighting of
group name and buzzer based on input from group buttons.
Keywords : Button, Quiz, Microcontroller, Displa
PROTOTYPE DRAMATIC STAGE LIGHTING CONTROL WITH BLUETOOTH HANDPHONE BASED MICROCONTROLLER ATmega 16
The final project aims to create a dramatic stage lighting control devices with Bluetooth media are more efficient than current lighting control equipment. The device is controlled by a microcontroller ATmega 16 which is connected with the EB500 Bluetooth module as a receiver and relay commands from the mobile phone as an activating stage lights.
This tool is made in several stages, namely, (1) Identification of Needs, (2) Needs Analysis, (3) Design System, (4) Hardware Design, (5) Design Software, (6) Preparation and (7) Testing Tool . Drama stage lighting control device with Bluetooth is working with the media is controlled by an ATmega16 microcontroller IC with control systems that are created using the C language Programming language created using software (CodeVision AVR). Hardware that supports consist of a series of power supply, EB500 Bluetooth module as a data receiver, IC ULN3803 as relay driver, relay for activating the lights and as a processor ATmega16 microcontroller. Mobile as a controller using the brand Sony Ericsson K608i with the type of Java software applications Avic B Controller.
Having performed experiments and analyzed it can be seen that the hardware has been successfully fabricated using minimum system ATmega16 microcontroller combined with other supporting instruments. The software has been successfully designed using the C programming language using CodeVision AVR decompile. The performance of this instrument as a whole has been in accordance with a predetermined function, which is well able to control the stage and lighting effects dramatize the appropriate criteria for lighting the stage drama. In a control tool is also found flaws in the software used in mobile phones that have come out of the program first before sending the next command and distance for lighting control only about 7 meters. This tool has received validation from the LB. Suraja a dance coach and administrator at Prambanan Ramayana Ballet who claimed this tool is sufficient to meet criteria and developed as it is possible to control lighting in a real drama
- …