PDA

View Full Version : GPU, GPGPU & Parallel Programming



TTheTTTTT
18th December 2015, 20:26
I'm looking for a new area of development to get into. I've recently been doing some of the usual C# ASP.NET MVC web dev stuff that seems pretty main stream nowadays, but I find it tiresome having to worry about trivialities such as the fine positioning of a text box on a web page, and I'm getting bored of firing off simple SQL queries at a database back end. I'm not sure I want to continue to go down that route.

I think I'd rather be writing back-end number-crunching type code and keep away from front-end UI stuff. I was thinking that getting into GPU/GPGPU/Parallel Programming would be quite fascinating, and possibly a growth area over the new few years. Apparently there is huge processing power to be exploited in graphics card GPUs due to their multi-core architecture. Also, I read that they can potentially crunch numbers not only faster than the CPU but also with less power consumption (in important consideration, particularly for mobile devices).

This is all quite reminiscent of transputers in the 1980's. That type of parallel architecture seems to finally be catching on in a big way now that we have multi-core CPUs & GPUs.

I must admit I've only just hit on this idea, and not really researched it yet so I cannot speak from any great knowledge or experience. I just got started reading "C++ AMP" (by Kate Gregory & Ade Miller). I'm not necessarily limiting myself to C++ at this stage though.

Have any of you guys dabbled in this area?

If so, what business domain and languages/tech did you work with?

What's your opinion of the future prospects for this tech?

jamesbrown
18th December 2015, 20:59
Dabbled only, so I can't offer much substance, but I didn't find it to be sufficiently broadly applicable for the range of parallel problems I was looking to solve. There's quite a large overhead in learning things like CUDA (for NVIDIA hardware). There are high-level interfaces (e.g. Java) and OpenCL is more broadly applicable, but you need to understand the problem quite deeply to know how to map it efficiently to the hardware (i.e. domain knowledge). I think GP-GPU are very useful indeed for certain problems, particularly on a low budget, but less so for problems that involve a mixture of constraints, such as I/O, memory and processing. That was my impression, anyway.

TBH, the old adage of keeping things as simple as possible and avoiding optimization unless absolutely necessary is a good one. Whether there's a contracting demand for this level of specialism, I don't really know. I sell domain knowledge and use computing as a means to an end. I would think that, in many instances, you would need this domain knowledge as much as any computational knowledge. I could be wrong though. FWIW, I am finding myself using software parallelism through distributed computing with frameworks like Apache Spark as it's very straightforward to learn and deploy on diverse hardware, and easy to re-use for multiple problems.

DimPrawn
18th December 2015, 22:19
ASP.NET MVC is going to pay the bills, pay the mortgage off, buy you a top of the range executive German car, take the family on nice foreign holidays for the next 10 years. What's not to like. Money for old rope.

Personally, I'd forget the other stuff, stick with the good ole MS gravy train. Toot toot!

AtW
19th December 2015, 00:31
GPU programming got pretty limited scope, very niche skill - unless you have particular interest in that problem domain then I would not bet a farm on it, HOWEVER what can be useful is leaning how to solve problems in parallel way, especially with multiple "cloud" servers involved - this may or may not include GPUs.

Boo
20th December 2015, 23:09
What's your opinion of the future prospects for this tech?

It seems to me it's a very similar area to assembler language programing : it's far and away more efficient than normal high level language programming but the ratio of jobs available to hll programmers to gpu programmers must be something like 1000:1 or worse.

Basically almost no applications need gpu level programming (nor assembler language programming for that matter). Those application areas that do need it (eg video codecs and such like) have their own special experience requirements which means that a) you won't easily find work just through having the gpu experience and b) the people with the domain experience have already got the gpu experience.

So it doesn't seem to me to be particularly promising unless you already have experience in a domain that can benefit from gpu level programming. And I speak as someone who has video codec exposure in assembler language on several different hardware platforms.

Boo

VectraMan
21st December 2015, 09:34
I experimented with AMP and OpenMP a bit. I'm writing multithreaded code all the time so it's a natural progression and something I would like to get into. I'm not convinced there are the applications beyond a few specialist areas; as with threads it sounds like a great idea to run things in parallel but sometimes when you analyse it it turns out to be less useful than you think, or just plain slower. With the GPU you've got to get the data in and out of the GPU; I would think it's only really going to fly if you have to carry out a big complicated massively parallel calculation on a small amount of data, or it's something that stays in video memory like video decoding or a game. At a previous job they told me they'd implemented something with CUDA (and the sort of thing they do sounds exactly like something that would benefit), but found it was no faster than using the CPU but added a lot of code complexity.

Interesting though. I've seen more jobs asking for OpenGL.

AtW
21st December 2015, 21:14
GpGPUs will get more interesting next year once they get more or less unified memory (without crazy access penalties), and more general CPU-like capabilities - otherwise they are limited in the amount of data they can keep in RAM and you need to be able to feed lots of GPU cores with it doing things that only some tasks can benefit from.

stek
21st December 2015, 21:18
GpGPUs will get more interesting next year once they get more or less unified memory (without crazy access penalties), and more general CPU-like capabilities - otherwise they are limited in the amount of data they can keep in RAM and you need to be able to feed lots of GPU cores with it doing things that only some tasks can benefit from.

Am i being thick or is all this GPU stuff just using the GFX card processing power to do what the general CPU does??????

What's the difference? Surely a POWER8 4-core or SPARC CPU for example has more oomph than what is effectively a gaming card?

PS I know I'm missing something....

jamesbrown
21st December 2015, 21:27
Am i being thick or is all this GPU stuff just using the GFX card processing power to do what the general CPU does??????

What's the difference? Surely a POWER8 4-core or SPARC CPU for example has more oomph than what is effectively a gaming card?

PS I know I'm missing something....

The point about a GPU is that you can get vastly more cores (as in thousands) for a fraction of the price that you would CPU cores. They are, therefore, very well suited to massively parallel tasks, but not all such tasks (e.g. not for tasks that require a lot of I/O and memory).

stek
21st December 2015, 21:30
The point about a GPU is that you can get vastly more cores (as in thousands) for a fraction of the price that you would CPU cores. They are, therefore, very well suited to massively parallel tasks, but not all such tasks (e.g. not for tasks that require a lot of I/O and memory).

OK I get that, but if had access to a SPARC proc with what, 1024 effective vcpus - is that better? Or SGI's old NUBUS tech, where all memory was shared between CPU, IO, GPU the lot?

jamesbrown
21st December 2015, 21:58
OK I get that, but if had access to a SPARC proc with what, 1024 effective vcpus - is that better? Or SGI's old NUBUS tech, where all memory was shared between CPU, IO, GPU the lot?

TBH, I don't know enough about SPARC hardware to comment. However, the thing w/ GPUs is that they're dirt cheap (several thousand cores for a few hundred quid; there are dedicated GP-GPU cards like the NVIDIA Tesla but, IIRC, they really aren't worth the money). In contrast, SPARC hardware is relatively expensive, right? Anyway, basically, what you're saying is right - it's just using a GPU for general purpose (GP) processing, hence GP-GPU, only it is a cost-effective way of achieving massive parallelism, with several thousand cores available on tap, and you can put a bank of GPUs together relatively easily.

AtW
21st December 2015, 23:07
OK I get that, but if had access to a SPARC proc with what, 1024 effective vcpus - is that better? Or SGI's old NUBUS tech, where all memory was shared between CPU, IO, GPU the lot?

GPUs are more vector oriented and have more limited set of commands - it can only work is the task is really well paralleliseable and also amount of memory required is relatively low because you'd need it all in GPU RAM (4-24 GB max).

piotrkula
15th January 2016, 13:44
ASP.NET MVC is going to pay the bills, pay the mortgage off, buy you a top of the range executive German car, take the family on nice foreign holidays for the next 10 years. What's not to like. Money for old rope.

Personally, I'd forget the other stuff, stick with the good ole MS gravy train. Toot toot!

Word!

Churchill
19th January 2016, 13:03
GpGPUs will get more interesting next year once they get more or less unified memory (without crazy access penalties), and more general CPU-like capabilities - otherwise they are limited in the amount of data they can keep in RAM and you need to be able to feed lots of GPU cores with it doing things that only some tasks can benefit from.

What he said.

However, if you want a relatively cheap standalone platform that supports unified memory then you could always have a look at one of these...

Jetson TK1 (http://www.nvidia.com/object/jetson-tk1-embedded-dev-kit.html)

clearedforlanding
21st January 2016, 00:42
SDN/NFV, I am having to pay 4 figure day rates for good developers and have a 5 year forecast of several hundred man years. 2015 was the year it went mainstream, now it's nuts.

Telcos are placing big bets on SDN.

d000hg
21st January 2016, 12:16
GPGPU is still niche but certainly growing. You can get GPU-based servers on demand with Amazon etc which tells you they are in demand, it is becoming quite widely used especially in the scientific community.

@stek; it really is night'n'day. A GPU can quite easily be 1000X times faster than a CPU for dealing with big chunks of repetitive data... for instance GP coding made brute-forcing hash codes easy that were considered basically unbreakable previously.

Boo
21st January 2016, 15:21
SDN/NFV, I am having to pay 4 figure day rates for good developers and have a 5 year forecast of several hundred man years. 2015 was the year it went mainstream, now it's nuts.

Telcos are placing big bets on SDN.
Well their bets are doing something strange to Jobserve - a search for SDN / NFV finds only 4 references across all countries JS supports. Of those 4 the highest paying is £550 per day which is average for London at best and nowhere near 4 figures.

So fail, 0 out of 10 for your spam post too...

Boo

northernladuk
21st January 2016, 16:49
Well their bets are doing something strange to Jobserve - a search for SDN / NFV finds only 4 references across all countries JS supports. Of those 4 the highest paying is £550 per hour which is average for London at best and nowhere near 4 figures.

So fail, 0 out of 10 for your spam post too...

Boo

:eek I'll have some of that!!! That's more then NLadyUK!!

clearedforlanding
21st January 2016, 19:30
Well their bets are doing something strange to Jobserve - a search for SDN / NFV finds only 4 references across all countries JS supports. Of those 4 the highest paying is £550 per hour which is average for London at best and nowhere near 4 figures.

So fail, 0 out of 10 for your spam post too...

Boo

Boo, in another post you claim that you work for a Telco.

SDN / NFV development doesn't happen in London. The players are Cisco, Juniper, ConteXtream, Huawei, Brocade, VMware/Nicira et al. Name one serious player in the Telco space who develops in the UK?

'kin hell, you should know that even VF technology is on the new campus in DUS. Have you ever been to the office behind Paddington? Seen any developers? Or just SAs?

Development positions in carrier technology on Jobserve? You are looking in the wrong place buddy. Find me an SDN developer for £550 who cut his teeth in something like IOS development with 15 years experience. Find me several and I'll make you rich.


$150-175K permie roles in Palo Alto for lowely engineers, which will be with HP who pay below market because they are good to have on your CV in the valley. http://www.indeed.com/salary/q-Sdn-Engineer-l-Palo-Alto,-CA.html

Boo
22nd January 2016, 11:27
Boo, in another post you claim that you work for a Telco
Fiction. Link please ?


SDN / NFV development doesn't happen in London. The players are Cisco, Juniper, ConteXtream, Huawei, Brocade, VMware/Nicira et al. Name one serious player in the Telco space who develops in the UK?

'kin hell, you should know that even VF technology is on the new campus in DUS. Have you ever been to the office behind Paddington? Seen any developers? Or just SAs?

Development positions in carrier technology on Jobserve? You are looking in the wrong place buddy. Find me an SDN developer for £550 who cut his teeth in something like IOS development with 15 years experience. Find me several and I'll make you rich.
Jobserve is in no way restricted to IOS etc, it is in fact the UK's leading job site in the IT world in all technologies. It is true that it's not the force it was but it is still a good indicator of what is hapening in the IT space in the UK.

The remainder of what you say in that quote seems to be entirely irrelevant, but whatever you found in your Xmas stocking, I wish there'd been some in mine...


$150-175K permie roles in Palo Alto for lowely engineers, which will be with HP who pay below market because they are good to have on your CV in the valley. Sdn Engineer Salary in Palo Alto, CA | Indeed.com (http://www.indeed.com/salary/q-Sdn-Engineer-l-Palo-Alto,-CA.html)
So what ? You said SDN / NFV is "smokin'" which, in the UK at least it clearly is not. And the salary for the role you post in your link is paying £101k equiv, which is easily matched and bettered in permanent IB roles in London and by contract rates in almost every other field to boot. Certainly a full year in contract nets me a whole lot more than that in embedded C / C++.

One hears of 7 figure salaries being paid in the West Coast of the USA but that is as irrelevant as the nonsense you posted for the simple reason that UK citizens will struggle to get interviews let alone visa's.

"Smokin'" my FHUA.

So my comment stands : kindly take your nonsensical spam jobs posts for jobs that don't really exist to somewheer they belong like, well, like Bobserve for example.

Boo

clearedforlanding
22nd January 2016, 16:15
Fiction. Link please ?


Jobserve is in no way restricted to IOS etc, it is in fact the UK's leading job site in the IT world in all technologies. It is true that it's not the force it was but it is still a good indicator of what is hapening in the IT space in the UK.

The remainder of what you say in that quote seems to be entirely irrelevant, but whatever you found in your Xmas stocking, I wish there'd been some in mine...


So what ? You said SDN / NFV is "smokin'" which, in the UK at least it clearly is not. And the salary for the role you post in your link is paying £101k equiv, which is easily matched and bettered in permanent IB roles in London and by contract rates in almost every other field to boot. Certainly a full year in contract nets me a whole lot more than that in embedded C / C++.

One hears of 7 figure salaries being paid in the West Coast of the USA but that is as irrelevant as the nonsense you posted for the simple reason that UK citizens will struggle to get interviews let alone visa's.

"Smokin'" my FHUA.

So my comment stands : kindly take your nonsensical spam jobs posts for jobs that don't really exist to somewheer they belong like, well, like Bobserve for example.

Boo


Boo you <snip>. I am not posting jobs, I am suggesting that SDN development pays well. I am not an agent, I am a board director of a multinational company. I don't need to punt for contractors on CUK and nor have I.

I am not based in the UK and my point was mostly that SDN development does not happen in the UK, so using UK centric Jobserve with a sample of 4 to provide indicative rates of SDN development contract rates is an exercise in futility.

We have a facility in San Jose, and I can assure you that UK citizens will have no problem getting visa sponsorship with the right skills and background. Do you even have a UK passport? Judging by your comprehension & posting not.

Before you accuse me of being racist, let me point out I am Welsh (eek!), speak fluent English, Spanish, German & French and will be happy to continue this discussion in any of them with you.

Boo
22nd January 2016, 17:57
I am not based in the UK and my point was mostly that SDN development does not happen in the UK, so using UK centric Jobserve with a sample of 4 to provide indicative rates of SDN development contract rates is an exercise in futility.
Except that you are posting in a UK based forum (the hint is in the name "ContractorUK") and neither did you mention in your first post that you are based abroad.

The simple fact is that SDN is a stagnant pool here in the UK and from the rates you quote abroad no better there either.

Next.

Boo

clearedforlanding
23rd January 2016, 00:36
Except that you are posting in a UK based forum (the hint is in the name "ContractorUK") and neither did you mention in your first post that you are based abroad.

The simple fact is that SDN is a stagnant pool here in the UK and from the rates you quote abroad no better there either.

Next.

Boo

Boo,

My apologies for being rude to you earlier.

I hope you would be so kind as to accommodate me in appreciating that a lot of UK based contractors ran for the hills on the cusp of IR35.

I do not believe that this disqualifies UK contractors who left the UK from participating in this forum. Indeed, the progression of off shoring to near shoring illustrates that we are working in a cross cultural, multi territory environment which is dictated by market forces.

I would like to agree to disagree with you. I believe that SDN developers command a premium, you do not.

I accept your position.

Warmest regards,


CFL.

suityou01
25th January 2016, 11:54
ASP.NET MVC is going to pay the bills, pay the mortgage off, buy you a top of the range executive German car second hand Saab convertible, take the family on nice foreign holidays to Hemsby for the next 10 years. What's not to like. Money for old rope.

Personally, I'd forget the other stuff, stick with the good ole MS gravy train. Toot toot!

FTFM

d000hg
27th January 2016, 10:07
For any 'proper' coders - those who really enjoy getting down and dirty with programming - I reckon GPU coding is fascinating. I'd love to work in that area.

Churchill
27th January 2016, 19:33
For any 'proper' coders - those who really enjoy getting down and dirty with programming - I reckon GPU coding is fascinating. I'd love to work in that area.

There is stuff out there if you know where to look.

There's a certain company that uses CUDA to do fancy stuff on optical fibre vibration analysis on pipelines and railway lines, they're not far from Farnborough, they have a Canadian parent...

For example...

Me, I'm just happy writing CUDA modules for GNURadio in my spare time.