nwcpp.org

  • Increase font size
  • Default font size
  • Decrease font size

Welcome to the Northwest C++ Users' Group

E-mail Print PDF

The Northwest C++ Users' Group (NWCPP) is a group of professional developers and hobbyists living and working in the Pacific Northwest who meet monthly to discuss trends, techniques, and technology regarding the C++ language and industry. The group meetings and resources are free, and anyone and everyone is welcome to attend.

We are interested in C++, C, the D language, concurrency, scalability, performance, Boost, software engineering, design patterns, debugging, compilers, functional programming, software architecture, machine architecture, DSLs, embedded software, test-driven development, cross-platform development, distributed programming, and more.

Meetings

Our meetings are held at the main Microsoft campus, One Microsoft Way, Redmond, WA 98052, in Building 41/1511 (Townsend), at the corner of NE 31st and 156th Ave NE. Usually, we meet at 7pm on the third Wednesday of the month.

Disclaimer: NWCPP is not associated with Microsoft—although we take advantage of their generosity in providing the venue and occasional speakers.

Past speakers at our meetings include Andrei Alexandrescu, Bruce Eckel, Steve McConnell, Scott Meyers, Alan Shalloway, Jeffrey Richter, Bobby Schmidt, Stan Lippman, Eric Niebler, Bartosz Milewski, and Herb Sutter.

Social Media

Sign up for our Announcements list, follow @nwcpp on Twitter, join our Facebook group, and join our LinkedIn group.

Seeking or offering a job? Use our LinkedIn Jobs Board.

Old Website

We have moved our website to a new host in early 2010 and started using Joomla. The old site content can be found here.

Last Updated on Tuesday, 07 February 2012 22:02
 

Feb 2012 Meeting

E-mail Print PDF

February 15th, 2012: Expressing Parallel Patterns in Modern C++ — Rahul V. Patil

Come at 6:30pm for pizza supplied by Amazon Digital.

The Northwest C++ Users Group is pleased to welcome Rahul V. Patil as our speaker this month. Amazon Digital is sponsoring our pizza for the meeting as well. Please join us for this meeting back in our regular room, at our regular time!

Abstract

We’ll do a lap around the most commonly applicable parallel patterns. The goal of the talk is to map each of these parallel patterns to equivalent C++ code, while taking advantage of the modern constructs in the language. We’ll demonstrate this by looking at the Parallel Patterns Library available in Visual Studio and Intel’s TBB. We’ll also look at some tools within Intel’s Parallel Studio and Microsoft’s Visual Studio that help identify, debug and analyze parallel programs.

This talk is for you, if you are looking to learn generally accepted parallel patterns and start using them in your C++ code. The talk will scale between 200 level and 400 level.

Note: The talk will not discuss C++ AMP, which deserves a full hour of its own.

Speaker Bio

Rahul V. Patil is a Lead Program Manager, in Microsoft’s C++ Parallel Computing team. He started at Microsoft 8 years ago and has been a part of the C++ concurrency runtime team since its inception.

About Rahul’s team: Parallel Computing team was founded 5 years ago with the mission of bringing programming models and tools to developers, so they may take advantage of the multi-cores and GPUs on the machine.

Video and Slides

Watch the video of Rahul's talk or read the slides.

Last Updated on Tuesday, 21 February 2012 13:16
 

November 2011 Meeting

E-mail Print PDF

November 16th, 2011: Introduction to Scientific Computing — Robert Goddard

Come at 6:30pm for pizza supplied by Kongsberg Underwater Technology.

Computing in science and engineering involves modeling part of the physical world. The inputs could be detailed measurements of the environment, or a randomized set of potential measurements that might characterize some environment in the future. The outputs could be images, or sound, or predictions of whether a system will succeed or fail to perform its function, or actions to make it more (or less) likely that some system will succeed. The algorithms might involve solving a set of differential equations, or integrating some function over a multi-dimensional domain, or searching multi-dimensional parameter spaces to optimize some measure of quality or fit, or sifting through noise to find a buried signal. Speed requirements might be real-time (hard or soft), or much faster, or jus:t fast enough to fit into your project cost and schedule. The answers must be accurate enough to accomplish the mission: Personnel training, or performance prediction, or advance of scientific knowledge, or control of a system or device, or life, or death.

Scientific computing typically involves a whole lot of arithmetic. So, I will begin with a review of floating point arithmetic, specifically the IEEE 754 standard. (You might be surprised at how much you thought you knew, but didn't.) Then I will move on to R. W. Hamming's five main ideas about computation: Emphasis on the purpose of the computation, generalization of algorithms into families, roundoff error, truncation error, and feedback (stability). I hope to give enough practical information to help you avoid the most common problems inherent in numerical computation, and to point out resources that could help you go further.

Speaker Bio

Robert Goddard is a physicist and software developer. For the last 31 years, he has worked at the Applied Physics Laboratory of the University of Washington, mainly on computer modeling of underwater sound. He is the architect and team leader for the Sonar Simulation Toolset (SST), which produces simulated underwater sound, suitable as input to sophisticated signal processing systems (including human ears and brains), based on user-specified descriptions of the undersea environment, the listening system, and the sound sources and targets that might be out there. He has also developed systems for control of measurement devices, data analysis, visualization, modeling of quantum mechanical scattering, and optimization of parameter values to fit observations.

Bob has been an active participant in NWCPP for most of its existence, and is currently Treasurer.

Update: video and slides

Last Updated on Wednesday, 11 January 2012 23:03
 

January 2012 Meeting

E-mail Print PDF

January 25th, 2012: Finding Race Condition and Data Races Effectively — Madan Musuvathi

Location: 43/1540-Adams (note room change). This meeting was originally scheduled for Jan 18th but postponed due to snow.

Come at 6:30pm for pizza supplied by Microsoft Server and Tools.

In this talk, I will describe two MSR tools Cuzz and DataCollider for finding concurrency errors. Cuzz uses a randomized algorithm to insert delays in a concurrent program to force race conditions with probabilistic guarantees. Cuzz is easy to use and is integrated with Microsoft’s Application Verifier. DataCollider uses hardware facilities in interesting ways to find data races with little runtime overhead. While other data-race detection techniques incur a 1000% runtime overhead or more, DataCollider incurs about 0 to 20% overhead.

Speaker Bio

Madan Musuvathi is a Senior Researcher in the Research in Software Engineering group at Microsoft Research. His research focus is on scalable analysis of concurrent systems. More broadly, his interests include systems, program analysis, model checking, verification, and theorem proving. He also spends a lot of time at Microsoft building analysis tools to improve the productivity of software developers and testers.

Resources

Video | slides | Cuzz paper | DataCollider paper.

December 2011: We took our usual winter break.

Last Updated on Tuesday, 07 February 2012 21:25
 

October 2011 Meeting

E-mail Print PDF

October 19th, 2011: Asynchronous Tasks in C++11 — Bartosz Milewski

Come at 6:30 for pizza provided by Summit Group Solutions, LLC!

One of the goals of the new C++11 Standard was to provide support for concurrency, in particular for thread-based concurrency. But threads don’t scale very well. Do C++ tasks, which are created using std::async, offer a scalable solution? Can they implement task-based parallelism?

Speaker Bio

Bartosz Milewski has a Ph.D. in Quantum Physics and many years of experience as a C++ programmer. He worked at Microsoft on the Context Index—a search engine before the Internet—still an active part of Windows 7. He designed the first distributed version control system, Code Co-op (before BitKeeper and Git). Bartosz took part in the design of the D language. His main topics of interest are concurrent and distributed computing. He works at Corensic, a Seattle startup that makes a concurrency bug detector, Jinx. He regularly publishes a blog at http://BartoszMilewski.wordpress.com and a series of C++11 Concurrency tutorials at http://www.corensic.com/Learn/Resources/ConcurrencyTutorialPartOne.aspx.

Update: slides and video of Bartosz's talk.

Last Updated on Monday, 07 November 2011 23:09
 
  • «
  •  Start 
  •  Prev 
  •  1 
  •  2 
  •  3 
  •  4 
  •  Next 
  •  End 
  • »


Page 1 of 4