Welcome to MSDN Blogs Sign in | Join | Help

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

 

 

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

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

Comments

# AprilR s WebLog VC Blog Tour Stop Content Part 6 Roadmap to | Insomnia Cure

Leave a Comment

(required) 
required 
(required) 
 
Page view tracker