Concurrent Programming: A Solution For Multi-core Era?

Status
Not open for further replies.

StealthMonkey27

Distinguished
Apr 22, 2008
2
0
18,510
LabVIEW is an inherently parallel programming language! Programs written in LabVIEW will thread across multiple cores as they become available.
 

chaosmstr

Distinguished
Aug 18, 2004
3
0
18,510
I've done a very small amount of programming. I admit to being a hardware, hands on kind of guy.

Concurrent programming sets my brain spinning. Having ADD makes things both harder and easier. I can think of several things at once, but keeping track of it all is another matter.

Multi-channel programming is a requirement for todays hardware. No argument there at all. I have difficulty in seeing how the average person (and I know that programmers aren't average people) can think beyond the "normal" linear mode of thinking.
"If x then y else z" is easy to see.
"If x then y unless y = q, q being processed while x was checked for y, and then lets calc z*x=y-q while q is being modified by x, or z..." I get lost just trying to figure out how to describe it!

I am GLAD that there are people who can program in a non-linear fashion.. but personally, I have to see it in a linear manner. Which todays hardware just laughs at anyway. If the language people can come up with something to allow linear people to program concurrently, it would be a wonderful thing.. but all I can see are two linear programs running on diff processors!

Ack.. I'm so confused.
 

chaosmstr

Distinguished
Aug 18, 2004
3
0
18,510
I've done a very small amount of programming. I admit to being a hardware, hands on kind of guy.

Concurrent programming sets my brain spinning. Having ADD makes things both harder and easier. I can think of several things at once, but keeping track of it all is another matter.

Multi-channel programming is a requirement for todays hardware. No argument there at all. I have difficulty in seeing how the average person (and I know that programmers aren't average people) can think beyond the "normal" linear mode of thinking.
"If x then y else z" is easy to see.
"If x then y unless y = q, q being processed while x was checked for y, and then lets calc z*x=y-q while q is being modified by x, or z..." I get lost just trying to figure out how to describe it!

I am GLAD that there are people who can program in a non-linear fashion.. but personally, I have to see it in a linear manner. Which todays hardware just laughs at anyway. If the language people can come up with something to allow linear people to program concurrently, it would be a wonderful thing.. but all I can see are two linear programs running on diff processors!

Ack.. I'm so confused.
 

wonderview

Distinguished
Apr 22, 2008
1
0
18,510
If you want parallel language, go with VHDL.
It designed to describe hardware, which is parallel in nature ( as well as your brain ).
In order to write in VHDL, you would have to shitch your way of thinking - from writing programs for
Von Neumann architecture, to designing hardware ( like drawing schematics ).

It might seems extreme, but I'm not kidding - the apparent problem with parallel programming in
procedural lenguages ( like c/C++ ) is due to the hardware architecture designed for procedural lenguages,
that has sequential execution at it's hart.


example of VHDL code ( concurrent assignments ):
out1
 

mr_fnord

Distinguished
Dec 20, 2005
1
0
18,510
Get real. You're not going to use concurrent processing at this minute level of detail. The cross-core cache access alone blows away all benefits on small tasks. in the x++ example, you're not going to have two cores executing two of these commands in order because the 2 clocks it takes to do this on one core is much faster than the 20 clocks it takes for core 2 just to access the contents of core 1's cache.

Don't expect a 100 line code-block to run on 4 cores. Now, using good multi-threaded design, you can have a few dozen 1000 line code blocks running on a bunch of cores, and use standard multi threaded messaging between them for the areas of memory that need to move between threads.

Highly procedural code will not run in a highly parallel fashion. Programmers need to start thinking in parallel, not procedural fashion. The framework already exists in pretty much every commonly used language.
 

robojocks

Distinguished
Feb 17, 2008
5
0
18,510
I think it can't happen fast enough. I would love to have the networking off loaded to one core. The OS locked to one core and the other cores for the user. This model would hopefully make the computer more stable.
 

robojocks

Distinguished
Feb 17, 2008
5
0
18,510
The other thing I hopefully would see is more visual programming the is actually visual with each potential parallel program code thing shown visually. I hope microsoft or Xsim whatever gets cracking on it.

The other thing which most people already know is going to happen is million core processors aka worm brain :D. Did anyone read about that human brains are shrinking and dogs brains are getting bigger and that they think at sometime in the future the dogs will take over the planet?
 
Status
Not open for further replies.