Showing posts with label GPU. Show all posts
Showing posts with label GPU. Show all posts

Sunday, 26 March 2017

How to Design the Parallel Programs?

Designing and developing parallel programs has characteristically been a very manual process. The programmer is typically responsible for both identifying and actually implementing parallelism.  Very often, manually developing parallel codes is a time consuming, complex, error-prone and iterative process. For a number of years now, various tools have been available to assist the programmer with converting serial programs into parallel programs. The most common type of tool used to automatically parallelize a serial program is a parallelizing compiler or pre-processor.

1. Understand the Problem and the Program
The first step in developing parallel software is to first understand the problem that you wish to solve in parallel. If you are starting with a serial program, this necessitates understanding the existing code also. Before spending time in an attempt to develop a parallel solution for a problem, determine whether or not the problem is one that can actually be parallelized.

Why We Can't Buy a 10 GHz Microprocessor?

This is very important questions considering the speed limit of the processor. The speed of the processor is depends upon the number of operations it performed per unit time. This speed is depends upon, one of the key component of the processor that is a transistor. 

The most important parts in a processor are the transistors, the electronic devices that act as switches in order to construct logical gates. These logical gates are the hard-working components of our processors. Put together in different combinations, they form units capable of arithmetic and complex logical operations.

So the speed of the processor is depends upon the number of transistors on the processor chip. According to Moor's Law the integration density of transistors doubles every 18 to 24 months. So the Moor;s Law is true, since the most powerful processor has billions of transistors on the processor chip. But there is a limitation for increasing the number of transistors integrated on the processor chip.

Thursday, 23 March 2017

OpenCL

1. What is OpenCL

  • OpenCL- Open Computing Language
  • Open Specification
  • Proposed by Apple
  • Specification developed by number of Companies
  • Specification is maintained by the Khronos Group

2. Why OpenCL ?

  • Computational performance has shifted from clock speed to cores
  • Multiple CPUs and programmable GPUs
  • Need a programming interface that allows users to take advantage of all the system resources
  • Supports general purpose parallel computations
  • OpenCL is device agnostic
  • As an open standard, code should be portable across implementations
  • No single company controls the specification – vendor neutral