Welcome to MSDN Blogs Sign in | Join | Help

AprilR's WebLog

Developer and ITPro Help Program Manager, April Reagan
VC++ Blog Tour Stop: Content Part 6: Roadmap to Taking Advantage of Hardware

You are either tired of hearing about it or you are sleeping under a rock, but like it or not, hardware is changing.  Not just from 32-bit to 64-bit, but the fundamental structures are all up for a make-over (not anywhere near the likes of what Trading Spaces has seen).  We also see the omni-present device taking the headline spot in personal technology line-ups.  

From the tour:

Concurrency

The Hardware - Adding cores to chips is what will make them faster in the future, clock speed is slowing to a crawl.
Intel and AMD both will ship multicore this year – within two years, most CPUs shipped will be multicore.

The Software - There are multiple types of concurrency for different tasks:

  • Data parallelism – Algorithmic concurrency, such as loops
  • Task parallelism – Traditional threading
  • Instruction level parallelism – Vectorization with SSE and SSE2

If you are not taking advantage of the concurrency your application performance will suffer.  You’ll need to learn how to write parallel programs!

Data Parallelism: OpenMP

  • OpenMP is a specification for writing multithreaded programs
  • It consists of a set of simple #pragmas and runtime routines
  • Makes it very easy to parallelize loop-based code
    • Can parallelize loops and straight-line code
    • Includes synchronization constructs
  • Helps with load balancing, synchronization, etc…
  • In Visual Studio, only available in C++!


Task parallelism: Windows threading

  • Standard model of Windows threads and threadpool
  • Useful for invoking different threads to run different functions
  • Instruction level parallelism: The profiler and C++ optimizer
  • Without Visual C++ 2005 you will lose performance on future processors!

64-bit

  • The 64-bit Platform provides many benefits:
  • Vastly increased address space
  • OS has more resources (buffer sizes, handles, etc…)
  • Enhanced 32-bit performance on x64 (maybe surprising, but true)
  • Modern computer architecture – fewer limitations
  • Better programming model (No more PAE/AWE!)
  • Full use of 64-bit components

Devices

Devices are now first class citizens in Visual Studio 2005:

  • Same IDE as desktop platforms
  • Same source base for compilers and native libraries
  • Ability to target multiple platforms
  • Managed and Native projects in same solution
  • Debugging is like the desktop debugger

 

Again, there are really great sources for further information:

Herb Sutter's Blog - http://pluralsight.com/blogs/hsutter/

Kang Su Gatlin's Blog - http://blogs.msdn.com/kangsu/

64-bit Programming - http://msdn.microsoft.com/visualc/using/building/64bit/default.aspx

Windows Embedded Home - http://msdn.microsoft.com/embedded/default.aspx

Windows CE - http://msdn.microsoft.com/embedded/windowsce/default.aspx

 

 

Posted: Wednesday, January 25, 2006 3:35 PM by AprilR
Filed under:

Comments

No Comments

Leave a Comment

(required) 

(required) 

(optional)

(required) 

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Page view tracker