Archive for March, 2013

regalo per le feste: ebook TFS e Project Server by PacktPub

March 30, 2013

Dopo tanto tempo rispetto alla volta passata, qui e qui, è arrivata un’altra bella notizia.
Sarà l’aria di festa … un altro regalo da PacktPub8543EN, un libricino che dal titolo mi piace già: Instant Team Foundation Server 2012 and Project Server 2010 Integration How-to.
Di TFS ne ho già parlato in passato (qui TFS) ma di Project Server purtroppo mai, purtroppo ne sono rimasto un po lontano.

Beh, questa è la volta buona per rompere il ghiaccio
Anche stavolta non mancherà una recensione sul nuovo libricino. 😉

Technorati tags: TFS,MS Project

Book: Programming Massively Parallel Processors: A Hands-on Approach (Applications of GPU Computing Series)

March 25, 2013

Programming Massively Parallel Processors: A Hands-on Approach (Applications of GPU Computing Series)
by David B. Kirk and Wen-mei W. Hwu

I wasn’t interested in GPU’s parallel area, but this book gave some interesting ideas about parallel programming, opportunities to take on day-to-day electronic devices.

Here are just 2 of many things I found interesting:

Thread granularity:
An important algorithmic decision in performance tuning is the granularity of threads. It is often advantageous to put more work into each thread and use fewer threads. Such advantage arises when some redundant work exists between threads.

Amdahl – Gustafson laws:
Amdahl’s law often motivates task-level parallelization. Although some
of these smaller activities do not warrant fine-grained massive parallel exe-cution, it may be desirable to execute some of these activities in parallel
with each other when the dataset is large enough. This could be achieved
by using a multicore host and executing each such task in parallel. This is
a illustration of Gustafson’s Law, which states that any sufficiently large
problem can be effectively parallelized. When the data set is large enough
and the more demanding calculation has been parallelized, one can effec-tively parallelize the less demanding calculation. Alternatively, we could
try to simultaneously execute multiple small kernels, each corresponding
to one task.

Multi-core processors are no longer the future of computing-they are the present day reality. A typical mass-produced CPU features multiple processor cores, while a GPU (Graphics Processing Unit) may have hundreds or even thousands of cores. With the rise of multi-core architectures has come the need to teach advanced programmers a new and essential skill: how to program massively parallel processors.

Programming Massively Parallel Processors: A Hands-on Approach shows both student and professional alike the basic concepts of parallel programming and GPU architecture. Various techniques for constructing parallel programs are explored in detail. Case studies demonstrate the development process, which begins with computational thinking and ends with effective and efficient parallel programs.

Teaches computational thinking and problem-solving techniques that facilitate high-performance parallel computing.
Utilizes CUDA (Compute Unified Device Architecture), NVIDIA’s software development tool created specifically for massively parallel environments.
Shows you how to achieve both high-performance and high-reliability using the CUDA programming model as well as OpenCL.

Technorati tags: MPI, CUDA, Parallel, Parallel Computing, GPU, GPGPU

Parallel computing: Amdahl’s Law and Gustafson’s Law

March 23, 2013

Parallel computing theory has basis are Amdahl’s Law and Gustafson’s Law.

They seemed to be different, the second better than the first .. but they are not!
Here is an article where Yuan Shi tell us the history, why they are not so different, plus some maths 😉

Reevaluating Amdahl’s Law and Gustafson’s Law

If you’re new tow parallel computing theory, then better have a read.
Enjoy it! 🙂

Parallel computing: Amdahl and Lawn mower laws

March 22, 2013

First approach to parallel computing is inspiring, astonishing … and you think your problems will be vaporized thanks to parallel …. but that’s not! I’m sorry 😦

You cannot parallelize everything, and even if you can do it, you need to coordinate, orchestrate … and other silly things that will settle down your theoric speed up.

First of all, you need to know a very famous rule: Amdhal’s law.
Very simple: a parallel application, is composed by a serial part and a parallel part; the more processors you get, the shorter will be the parallel part … but the serial part will always be there;
so if you want to know the speed up (“full serial app” vs “parallel app”), keep in mind the serial part of parallel application will settle down your hopes 😦

Here is a video explains better Amdahl’s law, by Douglas Eadline – Linux Magazine : Understanding Parallel Computing: Amdahl’s Law

And, the 2nd part, the Lawn mower law, same author: Understanding Parallel Computing (Part 2): The Lawn Mower Law

Technorati tags: Parallel,Parallel Computing

Parallel Computing: introduction …

March 16, 2013

Recently I faced with parallel computing: different technologies hardware and software, sw architecture, libraries, patterns, etc.

I was very beginner in early steps, and after searching a while for the right doc to start from, I found this introduction essay about parallel computing here: Introduction to Parallel Computing by Blaise Barney .

Barney makes easy to understand different types of parallelism (shared memory, thread, etc), and what they are releated to.
The chapter I liked most is “Designing Parallel Programs”, about partitioning, balancing, communications, granularity 🙂
It helps you in early steps, while defining your application’s architecture.

Enjoy it!

source: Introduction to Parallel Computing

Technorati tags: MPI, Parallel