Top Banner
Houston Tech Fest 2011 Scalable Concurrent C+ + Using Microsoft ConcRT and AMP Presented by David Cravey 10/15/2011
46

Houston Tech Fest 2011 Scalable Concurrent C++ Using Microsoft ConcRT and AMP

Feb 22, 2016

Download

Documents

tait

Houston Tech Fest 2011 Scalable Concurrent C++ Using Microsoft ConcRT and AMP. Presented by David Cravey 10/15/2011. About Me – David Cravey. Started programming in 4 th grade Learned BASIC on a V-Tech “ Precomputer 1000” and then GW-BASIC, and eventually QuickBasic - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript

University of Houston C++ User Group

Houston Tech Fest 2011Scalable Concurrent C++ Using Microsoft ConcRT and AMPPresented by David Cravey10/15/2011About Me David CraveyStarted programming in 4th grade Learned BASIC on a V-Tech Precomputer 1000 and then GW-BASIC, and eventually QuickBasicGot bored with BASIC in 8th Grade so moved to C++Software Development Manager at VivicomPresident of the Houston C++ User GroupMeets at Microsofts Houston Office1st Thursday of Each Month @ 7PMMicrosoft Visual C++ MVPAgendaWhy C++?Concurrent RuntimeTasksPPLAgentsGPGPUAMPResourcesSummaryC++The language of power!Why C++C++ ProvidesSpeedDown to the metal performance!Access to the Latest Hardware and DriversExample: GPGPUMulti-paradigm ProgrammingProceduralObject OrientedGeneric ProgrammingHigh Level Programming (i.e. Strong Abstractions)Classes AND TemplatesBut still allows you to step down to Low Level as needed!Portable Code?Modern C++:CleanSafeFast*Used with permission from Herb Sutters Writing modern C++ code: how C++ has evolved over the years http://channel9.msdn.com/Events/BUILD/BUILD2011/TOOL-835TAutomatic Memory ManagementNever type delete again!

unique_ptr< >shared_ptr< >weak_ptr< >Whats Different: At a GlanceThenNowcircle* p = new circle( 42 );vector vw = load_shapes();for( vector::iterator i = vw.begin(); i != vw.end(); ++i ) { if( *i && **i == *p ) cout