Visual Studio 2010 Multi-Monitor Support Helps Debugging Parallel Code
Debugging a parallelized application requires more information on the screen than debugging sequential code. Sometimes, even Full HD monitors aren't enough to display all the necessary windows at the same time. Luckily, Visual Studio 2010 Beta 2 offers a very intuitive multi-monitor support.
You already know that Visual Studio 2010 Beta 2 offers many new parallel debugging windows. I've talked about them in my previous post "New Parallel Debugging Windows in Visual Studio 2010 Beta 1". Furthermore, it also introduces new analysis and profiling tools, like the one explained in my post "Visualizing Parallelism and Concurrency in Visual Studio 2010 Beta 2". These new tools bring new windows and palettes to your Visual Studio IDE.
If you work with parallel code for many hours using one monitor, you'll find yourself moving many windows to organize the information on your screen whilst debugging. You'll want to check the information provided by the Parallel Stacks window. However, at the same time, you'll want to see the tasks and their related threads on other windows. I'm talking about debugging parallel code. Therefore, you'll also want to see the code that's being executed. Did I mention locals, call stack, watches, among other windows?
I've been working with dual-monitor workstations for many years now. However, Visual Studio 2010 Beta 2 simplifies the usage of multiple screens to distribute its windows and palettes. This version detects the presence of a dual-monitor configuration and it allows you to simply drag and drop the different windows and palettes to the desired screen. This way, you can drag and drop any window or palette integrated in the development environment. What happens if you disconnect the second monitor? All the windows and palettes that were displayed on that monitor will automatically move to the visible screen area. Simple and intuitive. Great for parallel developers that need dozens of windows at the same time.
It isn't limited to the default windows and palettes provided by the development environment. You will also be able to organize the windows created by extensions like Intel Parallel Studio.
You usually have to switch to multi-monitor mode in many notebooks and laptops using a shortcut. Most modern desktop computers and workstations also include GPUs with support for at least two monitors. Once you activate the dual-monitor mode, Visual Studio 2010 will detect the presence of the new screen. The following picture shows a notebook's dual-monitor activation icon:
Figure 1: Activating a dual-monitor configuration.
The following picture shows a typical parallel debugging scenario, with many windows on a single screen. As you can see, it is necessary to move and resize the windows to be able to see all the necessary information.
Figure 2: Too many windows on a single screen.
The following two pictures show the same windows distributed in two independent screens:
Figure 3: Parallel Stacks, Parallel Tasks, Threads, and Autos windows organized to see all the necessary information on the left screen.
Figure 4: The code, the menu, and the Immediate window organized to see all the necessary information on the right screen.
The following picture shows a notebook and an LCD monitor displaying the two previously explained windows in two screens, taking advantage of the multi-monitor support offered by Visual Studio 2010 Beta 2.
Figure 5: A dual-monitor configuration in action.
It is easier to debug parallel code when you can see all the necessary information without having to move and resize your windows every 5 seconds.
Disclaimer: This post isn't sponsored by a monitor manufacturer. I've found it really useful to work with Visual Studio 2010 Beta 2 new multi-monitor support whilst developing and debugging parallelized applications.
This Week's Multicore Reading List
MATLAB and Google App Engine
Logging In C++ : Part 2
Improving log granularityA Conversation with BitMagic's Developer
Prefer Structured Lifetimes: Local, Nested, Bounded, Deterministic
- Intel Parallel Studio; Download the free eval today!
- Parallelism Breakthrough Video Series; Watch and learn more about Intel® Parallel Studio
- 2009 Intel Software Webinar Series; View On-Demand webinars
- Coding for Multi-core Processes; Intel® Compiler Pro eBook
- Performance Through Parallelism; Intel® Tuning for Vista eBook
- Intel® Software Network; Connect with developers and Intel engineers
-
November 17, 2009
Visual Effects for Animation - presented by DreamWorks Animation
Speaker: Ron Henderson (Bio)Ron Henderson manages the FX Tools group at DreamWorks Animation, where he is responsible for developing physical simulation and procedural modeling tools. These systems have been used for key visual effects in recent films such as Kung Fu Panda and Monsters vs. Aliens (March 2009).
Prior to joining DreamWorks in 2002 he was a senior scientist at Caltech with a joint appointment to the Applied Math and Aeronautics departments, where he worked on efficient techniques for the direct numerical simulation of fluid turbulence.Abstract:
In this webinar, Ron Henderson will show examples of visual effects, from hair and feathers to smoke and fire, from a variety of DreamWorks Animation feature films. He will discuss in general terms the kinds of techniques used to achieve particular visual effects. Finally, Henderson will show a detailed breakdown of the dam-breaking scene from Madagascar: Escape 2 Africa, demonstrating how different elements of key frame animation, simulation, and rendering are combined in a real production shot. -
December 1, 2009
A Quick and Easy Way to Parallelize a Legacy Codebase with Intel® Threading Building Blocks (TBBs)
Speaker: Bernard Laberge, Avid, Senior Principal Engineer (Bio)Bernard Laberge is a senior principal engineer in the video editors division at Avid. During his seven years with the company he has been actively involved in the replacement of the legacy video processing engines used by Avid editors with a common hardware-abstracted, component-based video processing engine currently running on the CPU with SIMD optimized code, GPU, and dedicated hardware.
Abstract:
Learn how to overcome the limitations of a thread-based scheduler, including dealing with the absence of recursive parallelism support and the inefficient handling of unbalanced processing load. Bernard Laberge addresses how Avid resolved the expensive refactoring of their thread-based scheduler into a task-based solution by choosing Intel® Threading Building Blocks (TBBs). He explores how Avid was able to easily integrate the Intel TBBs into their video editor applications and more than 5 million lines of code. -
December 15, 2009
How to Use Intel® Parallel Studio to Streamline Code Development in a Multicore Environment
Speaker: Matt Dunbar, Director for Performance Technology, SIMULIA (Bio)Matt Dunbar is the director for performance technology at SIMULIA. Since joining the company in 1993, he has worked on parallelization of the Abaqus suite of products, initially for shared memory architectures and more recently for distributed memory architectures. Dunbar has also been intimately involved in selecting both the hardware and software tools used in the development of the Abaqus product line.
Abstract:
Resolve elusive, costly multithreading errors quickly and efficiently with Intel® Parallel Studio. While many coding problems that lead to bugs in software applications are typically straightforward logic errors, errors in managing memory and in multithreading code can sometimes take weeks to months to diagnose and fix. Matt Dunbar explores how and why taking advantage of multicore processors through multithreaded code is critical for compute-intensive applications. While spotlighting his work on SIMULIA's Abaqus finite element solver, Dunbar addresses the need for multicore execution and shares his experiences using Intel Parallel Studio to streamline code development in a multicore environment.



