Posted on www.ddj.com/go-parallel
Are you still designing RIAs (Rich Internet Applications) using a serial programming approach? If that's the case, then you are losing a big opportunity to achieve a sustainable competitive advantage over competitors.
Wednesday, May 13, 2009
Wednesday, May 6, 2009
Counting cores in .Net and Java
Posted on Intel Software Network
As C# and Visual Basic (in the .Net world) and Java are high level programming languages, most developers were not used to check for some hardware information. With multicore microprocessors and a task-oriented programming model, trying to take full advantage of parallel processing capabilities offered by modern microprocessors, this is changing.
As C# and Visual Basic (in the .Net world) and Java are high level programming languages, most developers were not used to check for some hardware information. With multicore microprocessors and a task-oriented programming model, trying to take full advantage of parallel processing capabilities offered by modern microprocessors, this is changing.
Monday, May 4, 2009
Measuring Parallelism: How Much Power Are You Wasting?
Posted on www.ddj.com/go-parallel
Management professionals love metrics. However, they don't like the idea to optimize applications that are currently running. Thus, what about showing them some metrics about the power that they are wasting using a free tool?
Management professionals love metrics. However, they don't like the idea to optimize applications that are currently running. Thus, what about showing them some metrics about the power that they are wasting using a free tool?
Wednesday, April 29, 2009
Invoking parallel tasks
Posted on Intel Software Network
In a recent post, Robert Chesebrough (Intel) talked about less focus on threads and more focus on tasks. I agree with him. I do believe that decomposing the job to be done into many tasks is the key to a successfully parallelized algorithm.
In a recent post, Robert Chesebrough (Intel) talked about less focus on threads and more focus on tasks. I agree with him. I do believe that decomposing the job to be done into many tasks is the key to a successfully parallelized algorithm.
Tuesday, April 28, 2009
Using Intel Concurrency Checker 2.1 to benchmark threading and multicore metrics
This video uses Intel Concurrency Checker 2.1 to benchmark threading metrics on a parallelized and multithreaded C# application. Watching this video you will find out that there is an easy to use utility to test multicore optimizations in any executable.
For more information about Intel Concurrency Checker 2.1, visit: http://software.intel.com/
The application also uses AForge.NET imaging framework. For more information about AForge.NET, visit: http://www.aforgenet.com
For more information about .Net Parallel Extensions, visit: http://msdn.microsoft.com/en-us/concurrency/default.aspx
For more information about Intel Concurrency Checker 2.1, visit: http://software.intel.com/
The application also uses AForge.NET imaging framework. For more information about AForge.NET, visit: http://www.aforgenet.com
For more information about .Net Parallel Extensions, visit: http://msdn.microsoft.com/en-us/concurrency/default.aspx
Parallel Extensions offer backward compatibility
Posted on Intel Software Network
Many developers are working with the features offered by C# 3.0 and .Net 3.5 to exploit multi-core CPUs. Parallel Extensions, which will be part of .Net 4.0 in Visual Studio 2010 are entering Beta 1. Luckily, they will offer backward compatibility.
Parallel Extension will offer a lot of interesting features related to multi-core programming. So, developers face many questions.
Many developers are working with the features offered by C# 3.0 and .Net 3.5 to exploit multi-core CPUs. Parallel Extensions, which will be part of .Net 4.0 in Visual Studio 2010 are entering Beta 1. Luckily, they will offer backward compatibility.
Parallel Extension will offer a lot of interesting features related to multi-core programming. So, developers face many questions.
Intel's Hyper-Threading Strikes Back
Posted on www.ddj.com/go-parallel
Intel's Hyper-Threading technology was introduced with the 3.06 GHz Pentium 4 microprocessor. A few years later, the new Intel Core i7 processors offer Hyper-Threading again.
Intel's Hyper-Threading technology was introduced with the 3.06 GHz Pentium 4 microprocessor. A few years later, the new Intel Core i7 processors offer Hyper-Threading again.
Novell's Mono brings SIMD support to C#
Posted on www.ddj.com/go-parallel
Parallel programming is not just about multi-threading and multi-core. There's also a lot of power in the SIMD (Single Instruction Multiple Data) extended instruction set available in most modern microprocessors from Intel and AMD.
Parallel programming is not just about multi-threading and multi-core. There's also a lot of power in the SIMD (Single Instruction Multiple Data) extended instruction set available in most modern microprocessors from Intel and AMD.
Wednesday, March 11, 2009
Running a parallelized C# threaded application using different number of cores in Windows Vista
This video shows the difference between using one core and four cores in a highly threaded, parallelized application programmed in Visual C# 3.0 (2008). Many people say multicore CPUs are useless. Watching this video you will find out that there is a lot of power in multicore CPUs. Developers must tackle the multicore revolution to exploit multicore CPUs in new applications.
The application uses the excellent AForge.Net C# imaging library. For more information about it, visit: www.aforgenet.com
The application shown in the video is developed and explained in Chapter 12: Developing a Completely Parallelized Application.
This is the chapter's table of contents:
Joining many different parallelized pieces into a complete application
Time for action – Creating an opacity effect in an independent thread
Running code out of the UI thread
Time for action – Creating a safe method to change the opacity
Blocking the UI—Forbidden with multithreading code
Time for action – Creating a class to run a task in an independent thread
Time for action – Putting the logic into methods to simplify running tasks
in a pool of threads
Time for action – Queuing requests, running threads, and updating the UI
Combining threads with a pool of threads and the UI thread
Time for action – Creating a specialized parallel algorithm piece subclass
to run concurrently with the pool of threads
Time for action – Creating a specialized parallel algorithm coordination
subclass to run concurrently with the pool of threads
Time for action – Overriding methods in the brightness adjustment
coordination subclass
Time for action – Starting new threads in a new window
Creating threads inside other threads
Time for action – Showing new windows without blocking the user
interface
Multiple windows and one UI thread for all of them
Rationalizing multithreaded code
Summary
For more information visit: http://www.packtpub.com/beginners-guide-for-C-sharp-2008-and-2005-threaded-programming/book
The application uses the excellent AForge.Net C# imaging library. For more information about it, visit: www.aforgenet.com
The application shown in the video is developed and explained in Chapter 12: Developing a Completely Parallelized Application.
This is the chapter's table of contents:
Joining many different parallelized pieces into a complete application
Time for action – Creating an opacity effect in an independent thread
Running code out of the UI thread
Time for action – Creating a safe method to change the opacity
Blocking the UI—Forbidden with multithreading code
Time for action – Creating a class to run a task in an independent thread
Time for action – Putting the logic into methods to simplify running tasks
in a pool of threads
Time for action – Queuing requests, running threads, and updating the UI
Combining threads with a pool of threads and the UI thread
Time for action – Creating a specialized parallel algorithm piece subclass
to run concurrently with the pool of threads
Time for action – Creating a specialized parallel algorithm coordination
subclass to run concurrently with the pool of threads
Time for action – Overriding methods in the brightness adjustment
coordination subclass
Time for action – Starting new threads in a new window
Creating threads inside other threads
Time for action – Showing new windows without blocking the user
interface
Multiple windows and one UI thread for all of them
Rationalizing multithreaded code
Summary
For more information visit: http://www.packtpub.com/beginners-guide-for-C-sharp-2008-and-2005-threaded-programming/book
Wednesday, March 4, 2009
C# 2008 and 2010, multicore, .Net Parallel Extensions and PLINQ
The book includes a lot of content dedicated to .Net Parallel Extensions (currently in CTP) and PLINQ (Parallelized LINQ). They will be available in C# 2010 (C# 4.0) and .Net 4.0.
This video shows the application developed in Chapter 11: Coding with .NET Parallel Extensions.
The chapter's table of contents:
Parallelizing loops using .NET extensions
Time for action – Downloading and installing the .NET Parallel Extensions
No silver bullet
Time for action – Downloading and installing the imaging library
Time for action – Creating an independent class to run in parallel without
side effects
Counting and showing blobs while avoiding side effects
Time for action – Running concurrent nebula finders using a
parallelized loop
Using a parallelized ForEach loop
Coding with delegates in parallelized loops
Working with a concurrent queue
Controlling exceptions in parallelized loops
Time for action – Showing the results in the UI
Combining delegates with a BackgroundWorker
Retrieving elements from a concurrent queue in a producer-consumer scheme
Time for action – Providing feedback to the UI using a producer-consumer
scheme
Creating an asynchronous task combined with a synchronous parallel loop
Time for action – Invoking a UI update from a task
Providing feedback when each job is finished
Using lambda expressions to simplify the code
Parallelizing loops with ranges
Parallelizing queries
Time for action – Parallelized counter
Parallelizing LINQ queries with PLINQ
Specifying the degree of parallelism for PLINQ
Parallelizing statistics and multiple queries
Summary
Subscribe to:
Posts (Atom)