Intel® Moderncode for Parallel Architectures
Support for developing parallel programming applications on Intel® Architecture.
1696 Discussions

Is there much demand for multi-core CPU software performance skills?

dehvidc1
Beginner
459 Views

Hi,

I was just wondering if there's much demand inthe market for developers with multi-core CPU software performance skills. The chips are sensational in their potential performance but I've found in the past a lot of development managers have trouble getting their head around the potential performance and would rather focus on functionality

Thanks

David

0 Kudos
10 Replies
Tom_Spyrou
Beginner
459 Views
For computationally intensive programs with long runtimes there is a huge need for well trained parallel programmers who know how to profile and optimize code in general and specific to data locality and cache behavior.
Right now the job market is very tight so it might seem that the demand is low. In a tight job market managers do projects that they have to do and defer projects that they should or could do. I manage a product with 70+ developers and speak from experience. I do know however that winning products will efficiently use the cpu horsepower at their disposal. Products that lag will eventual be overtaken by competitors.

I also think that knowing a product domain along with parallel programming is good. In my domain, EDA software, I can sometimes hire a generalist but would prefer a parallel programmer who knows something about Electonic CAD and that vertainly creates an advantage in the hiring process for me.

0 Kudos
gaston-hillar
Valued Contributor I
459 Views
Quoting - dehvidc1

Hi,

I was just wondering if there's much demand inthe market for developers with multi-core CPU software performance skills. The chips are sensational in their potential performance but I've found in the past a lot of development managers have trouble getting their head around the potential performance and would rather focus on functionality

Thanks

David


Hi David,

I agree with Tom Spyrou. "Products that lag will eventual be overtaken by competitors.". Besides, developers that don't get trained for multicore and parallel programming will be overtaken by competitors.

Taking advantage of multicore, you can also add more concurrent functions to an application. Hence, it's not just about processing power. It allows you to offer new user experiences.

For example, a few days ago, as was at IDF 2009. I showed an application running on both Windows, Moblin and MIDinux, using special effects and an attractive UI. It was possible to create this app because I took advantage of Intel Atom's Hyper-Threading features (2 logical cores, 2 hardware threads). Using it, I was able to improve the performance around 35% over the single threaded version.

Besides, I saw a eight-core (8 physical cores, 16 logical cores, 16 hardware threads) Xeon in the tecnology showcase. There are great opportunities for developers trained in multicore programming.

However, you know, some managers aren't prepared for this revolution. I had an exciting 2009 working with multicore. :)

Keep tuned with the events in this community. You'll find very interesting blogs and comments for real-life experts.

Besides, don't miss www.go-parallel.com

All the best,

Gaston
0 Kudos
heavyj
Beginner
459 Views
Hello,

Does Intel Core2 architecture really allow for micro-parallel programming?

I am developing a 5x5 Boggle board analysis program.

System:

C
Ubuntu 9.04
g++
POSIX pthreads

On a single core, the program scores 1277 boards/sec. Boards with a score around 10,769 with TWL06 lexicon.

The Lexicon data structure is immutable. Time stamps are employed to eliminate the duplicate word problem. There is a thread for finding words on a board for each letter in the lexicon.

Using mutexes and condition variables, I am still only able to use 45% of my CPU resourses on a Q9450.

All worker threads call the same recursive function many, many, many time per second. If the L1 instruction cache for each core is only 32KBytes, do the threads spend half of their time waiting to access L2 cache for the instruction code of the recursive function?

How fast are signals sent between cores? Is the parallel algorithm that I have designed too ambitious for the Core2 architecture?

All the Best,

JohnPaul Adamovsky - How does one start a new threadon this forum?
0 Kudos
TimP
Honored Contributor III
459 Views
New threads are started by clicking on "Start New discussion" next to the forum title.
0 Kudos
gaston-hillar
Valued Contributor I
459 Views
Quoting - heavyj
Hello,

Does Intel Core2 architecture really allow for micro-parallel programming?

I am developing a 5x5 Boggle board analysis program.

System:

C
Ubuntu 9.04
g++
POSIX pthreads

On a single core, the program scores 1277 boards/sec. Boards with a score around 10,769 with TWL06 lexicon.

The Lexicon data structure is immutable. Time stamps are employed to eliminate the duplicate word problem. There is a thread for finding words on a board for each letter in the lexicon.

Using mutexes and condition variables, I am still only able to use 45% of my CPU resourses on a Q9450.

All worker threads call the same recursive function many, many, many time per second. If the L1 instruction cache for each core is only 32KBytes, do the threads spend half of their time waiting to access L2 cache for the instruction code of the recursive function?

How fast are signals sent between cores? Is the parallel algorithm that I have designed too ambitious for the Core2 architecture?

All the Best,

JohnPaul Adamovsky - How does one start a new threadon this forum?

Hi JohnPaul,

You have to click on New Thread and enter your text. The question is not going to be answered lost in another thread.

All the best,

Gaston
0 Kudos
mahmoudgalal1985
Beginner
459 Views
Quoting - Gastn C. Hillar

Hi JohnPaul,

You have to click on New Thread and enter your text. The question is not going to be answered lost in another thread.

All the best,

Gaston
Thank you
0 Kudos
michele-delsol
Beginner
459 Views
Quoting - dehvidc1

Hi,

I was just wondering if there's much demand inthe market for developers with multi-core CPU software performance skills. The chips are sensational in their potential performance but I've found in the past a lot of development managers have trouble getting their head around the potential performance and would rather focus on functionality

Thanks

David


0 Kudos
michele-delsol
Beginner
459 Views
Quoting - dehvidc1

Hi,

I was just wondering if there's much demand inthe market for developers with multi-core CPU software performance skills. The chips are sensational in their potential performance but I've found in the past a lot of development managers have trouble getting their head around the potential performance and would rather focus on functionality

Thanks

David


Hi - I'll respond from a broad perspective (I am located in France so my comments might not extrapolate to the US and other countries).

I have found that in general there are two types of parallel programmers - the HPC and the serial types who want to get into parallel programming.

The HPC type is well versed as to techniques and tools. They tend to use Intel and non Intel products. As a trainer of Thread Checker, Profiler and VTune, theHPC types i have encountered know the guts of these tools.

Then there is the general programmer (C++, Fortran)who does not have experience with parallel programming but who is otherwise very knowledgeable. I am astonished as to the fact that very few of this type of programmer have in not yet apprehended the importance of going parallel. The admonishment 'Go parallel or perish' has really not yet struck home. I believe the reason is that when going from a single core to a dual core on Windows, the OS, the virus protection program and outlook runing in the background generate so many logical threads and absorb so much CPU power that the parallelized application does not get a fair share of the extra computing power that the extra core. When quad cores and octo cores lap tops become common place, then we should be seeingserial monocore programmers express an increased demand for skills and tools.

So, to make it short, investing in parallel computing skills today is a good investment. If Moore's law applies to the # of cores in laptops then we should be seeing generalized octocores two/three years from now.

Hope this helps - just my 2 cents.
Michele (France)
0 Kudos
Tamer_Assad
Innovator
459 Views
Quoting - dehvidc1

Hi,

I was just wondering if there's much demand inthe market for developers with multi-core CPU software performance skills. The chips are sensational in their potential performance but I've found in the past a lot of development managers have trouble getting their head around the potential performance and would rather focus on functionality

Thanks

David


We are the developers! We make applications.

Once GUI app developed, it evolved all end user computer sw apps to follow common GUI design. Developers back then had to adapt their end user interaction to the nice GUI facility.

Likewise, nCore starts a new age in computer sw, and because of the increasing requirement to concurrent functionality, eventually successful market applications must rely on nCore performance.

Regards,

Tamer

0 Kudos
ninhngt
Beginner
459 Views
Quoting - t_assad

We are the developers! We make applications.

Once GUI app developed, it evolved all end user computer sw apps to follow common GUI design. Developers back then had to adapt their end user interaction to the nice GUI facility.

Likewise, nCore starts a new age in computer sw, and because of the increasing requirement to concurrent functionality, eventually successful market applications must rely on nCore performance.

Regards,

Tamer


I am working on HPC. Many scientific institutes are realizing the need for fast software. The future for parallel programmers is quite bright.
0 Kudos
Reply