Jump to content


 


Register a free account to unlock additional features at BleepingComputer.com
Welcome to BleepingComputer, a free community where people like yourself come together to discuss and learn how to use their computers. Using the site is easy and fun. As a guest, you can browse and view the various discussions in the forums, but can not create a new topic or reply to an existing one unless you are logged in. Other benefits of registering an account are subscribing to topics and forums, creating a blog, and having no ads shown anywhere on the site.


Click here to Register a free account now! or read our Welcome Guide to learn how to use this site.

Photo

what's the big deal with parallelism?


  • Please log in to reply
3 replies to this topic

#1 jason87x

jason87x

  • Members
  • 3 posts
  • OFFLINE
  •  
  • Local time:04:18 PM

Posted 24 December 2010 - 04:16 PM

I was in a computer architecture class last semester, and the last chapter was about all this multiprocessor stuff. It's quite confusing and I didn't really learn it that well.

What's the big deal about it? Do multiple cores really provide the speedup they promise? Is task level parallelism a good idea, or do the separate processes need to like communicate with each other a lot?

And how does vector processing play into things? How many applications really rely on vector processing? I know a lot of this is geared at graphics and sometimes sound, but do they have much benefit to normal processing? Will it change how programming is done like in a serious way?

I guess this is kind of like the change from learning about calculus in a scalar way (Calc 1 and early Calc 2) to transitioning to a vector way of thinking (vector calculus). Which still is more complicated, I understand calculus in a scalar perspective, but I forgot a lot of those vector calc formulas, and how they relate to a scalar math world. I wish math the way it's taught was more generalized to account for vector and matrix (arbitrary R^n).

BC AdBot (Login to Remove)

 


#2 the_patriot11

the_patriot11

    High Tech Redneck


  • BC Advisor
  • 6,755 posts
  • OFFLINE
  •  
  • Gender:Male
  • Location:Wyoming USA
  • Local time:03:18 PM

Posted 24 December 2010 - 06:14 PM

Without going to much into specifics, if you have software designed to run on a multi core CPU, then yes it will vastly outperform a single core CPU. For example, My old CPU was a athlon 64 x2 6000+ it was a dual core 3 ghz CPU. Good CPU, dont get me wrong, and I was hesitant, why need a quad? it wont perform that much better. Well in my system, I play a game called bfbc2 a lot-and playing that game at 1600x1200 at medium settings I was getting maybe 30 fps. I finally upgraded to the phenom II x4 945, a 3 ghz quad core CPU. I was still skeptical, but once I booted up my game, with the same settings, got between 80-90 fps depending on map. Over twice the performance, so yes they do make a difference. On older programs not designed for multiple cores, you probably are not going to notice much of a difference, but thats reason to keep up with the times. :D

picard5.jpg

 

Primary system: Motherboard: ASUS M4A89GTD PRO/USB3, Processor: AMD Phenom II x4 945, Memory: 16 gigs of Patriot G2 DDR3 1600, Video: AMD Sapphire Nitro R9 380, Storage: 1 WD 500 gig HD, 1 Hitachi 500 gig HD, and Power supply: Coolermaster 750 watt, OS: Windows 10 64 bit. 

Media Center: Motherboard: Gigabyte mp61p-S3, Processor: AMD Athlon 64 x2 6000+, Memory: 6 gigs Patriot DDR2 800, Video: Gigabyte GeForce GT730, Storage: 500 gig Hitachi, PSU: Seasonic M1211 620W full modular, OS: Windows 10.

If I don't reply within 24 hours of your reply, feel free to send me a pm.


#3 acheleg

acheleg

  • Members
  • 41 posts
  • OFFLINE
  •  
  • Local time:06:18 PM

Posted 25 December 2010 - 12:44 AM

I was in a computer architecture class last semester, and the last chapter was about all this multiprocessor stuff. It's quite confusing and I didn't really learn it that well.

What's the big deal about it? Do multiple cores really provide the speedup they promise? Is task level parallelism a good idea, or do the separate processes need to like communicate with each other a lot?

And how does vector processing play into things? How many applications really rely on vector processing? I know a lot of this is geared at graphics and sometimes sound, but do they have much benefit to normal processing? Will it change how programming is done like in a serious way?

I guess this is kind of like the change from learning about calculus in a scalar way (Calc 1 and early Calc 2) to transitioning to a vector way of thinking (vector calculus). Which still is more complicated, I understand calculus in a scalar perspective, but I forgot a lot of those vector calc formulas, and how they relate to a scalar math world. I wish math the way it's taught was more generalized to account for vector and matrix (arbitrary R^n).


parallel processing is a big deal since they hit the 4ghz barrier in pentium 4 days. since then, it has proven impossible to consistently make cpu's stable at speeds higher than 4ghz, so, the primery way to make cpu's perform faster is parallelism- multiple pipeline, multi-core and/or hyperthreaded designs.

certain instructions are dependent upon each oter, and have to be processed in a particular order, sometimes. a problem with parallelism is when instructions get put in the pipeline in the wrong order, and thus have to be flushed to free up the pipeline while the other, required instruction is completed. this was a particular problem with pentium 4's, even in the single cores, becuase they used an advanced (at the time) "out-of-order instructional parallelism" instruction set, to take advantage of an approx. doubling of cpu pipelines in a single core. this proved adding more pipelines to be inefficient at numbers higher than 10-15, so they transitioned from adding more pipelines to reducing pipelines and instead adding more cores.

pentium 4's hyperthreading technology also proved to be problematic at times, so it was not included in the core archetecture, and only recently re-introduced in the i5's and i7's, while they perfected the technology. even with the new inproved hyper-threading technology, the physical core and "virtual" core have to share some internal cpu hardware elements, so physical multi-core technology has proven to be more effective than hyperthreading.

with increased pipelines and "out of order instructional parallelism" within a single core, the performance gain is dependent upon the cpu isntructions set, while with multi-core technology, the performance gain is software dependent, and hyper-threading is dependent upon a combination of the two. when you let the application control the parallelism, it seems to work better, because cpu instruction sets can sometimes conflict with software- especially software that was not designed with the additional instruction sets in mind.

vector processing also uses cpu instruction sets for multi-media such ass mmx and sse instructions. the idea with vector processing is differrent from "out of order instructional parallelism" because it sends not just the instruction down the popeline, but also the necesarry data along with it, to keep the cpu from having to access the ram for required data. generally parallalism divides everything into little threads to allow simultaneous processing of many small chunks of data, while vactor processing does much the opposite, and sends fewer, larger chunks down the pipeline. vector processing reduces the issue with parallelism- that being, some instructions are dependent upon the results of others, and seems to work best with general multimedia. parallelism seems to work better with encoding. each approach works differrently, depending upon the type of data being processed.

#4 chromebuster

chromebuster

  • Members
  • 899 posts
  • OFFLINE
  •  
  • Gender:Female
  • Location:the crazy city of Boston, In the North East reaches of New England
  • Local time:06:18 PM

Posted 25 December 2010 - 12:51 PM

I, right now, have a Pentium D20 processor evidently in this old desktop here. Is that a good one? My laptop has a T6400. Are they both duel core?

The AccessCop Network is just me and my crew. 

Some call me The Queen of Cambridge





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users