In my last post, I’ve presented an overview of classes hiding behind the parallel for implementation. Today I’ll focus on the input part of the parallel for – the part that fetches values the loop is iterating over and passes them to parallel tasks. More specifically, I’ll present source providers, data managers and local queue.
Tuesday, January 25, 2011
Tuesday, January 11, 2011
Parallel for implementation [1]: Overview
Today is the day to fulfill that promise.
This article starts the journey that will (hope, hope) explain the murky waters of parallel loop data management. Three parts are planned – Overview (which you are reading now), Input and Output.
Even if you are interested in parallel programming, you may think that such low-level stuff is of no interest to you. Well, you may be right, but let me state three reasons why you should read this three-part series.
1) Because you will then know what the OtlDataManager unit is good for and will be able to use it in your application.
2) Because it’s an interesting topic ;)
3) So I can convince you that Parallel.ForEach is better than home-brew multithreaded parallel loops and that you should always use OmniThreadLibrary ;)
Ready?
Thursday, January 06, 2011
Delphi on wide screen
A lifetime ago when I was still programming on two 1280 × 1024 monitors I’ve published a post about the IDE layout I was using at that time (in Delphi 2006).
I was always saying that there’s only one reason why a programmer should use two monitors – because (s)he has no place for the third one! So when the opportunity knocked I did the same – cleaned up some place on the desk and installed a 1920 × 1200 monitor in the middle.
Sunday, January 02, 2011
GpLists and GpStructuredStorage update
GpLists 1.49: Implemented TGpGUIDList, a TGUID list.
GpStructuredStorage 2.0c: Uses GpStreams instead of (deprecated) GpMemStr.
Erik Berry fixed GpTextStream and GpLists to compile with Delphi 6; those changes were committed to SVN only.