TechEd 2009 Europe

Thursday, November 5, 2009

Hi All, If you are coming to this year's TechEd in Europe let me know about it. You are also welcome to join my session on Friday titled "Parallel Programming for Embedded". The session covers parallel computing in general and in particular for embedded systems. The most important part is that it is using a language that infrastructure people can relate to. If you ever used DOS, Device Drivers, low level C and C++, and basic Win32 API then you should come. The session uses this to your advantage. On the other hand web developers will fins this eye opening. The hardware...

תכנות מקבילי – אירוע חד יומי

Thursday, September 3, 2009

באירוע ה- TechEd האחרון העברתי הרצאה בנושא עבודה מקבילית עם C#. בתקופה ההיא הנושא עוד היה חדש וזאת היתה ההרצאה היחידה. ההענות היתה טובה מאד ולמרות שההרצאה היתה בשעה 8 בבוקר האולם היה מלא עד אפס מקום ובתמונות ניתן לראות את המסדרון מחוץ לאולם מלא עד שאין מקום עמידה (צפיה בתמונות). מכיוון שהיתה היענות כל כך חיובית היו מספר אירועים נוספים שעקבו בניהם יום פתוח בחסות מיקרוסופט ומספר רב של אירועים אחרים. עם הזמן עברתי להוביל את התחום בחברת פסיפיק תוכנה, הקמנו שישה קורסים שונים עם סך הכל של 20 ימי הדרכה בנושאים שונים. האירוע הבא יתקיים ב- 24 לחודש ספטמבר. מדובר בכנס חד...

World of Parallel Computing

Sunday, April 5, 2009

I was reading Sasha's blog post about parallel computing and went over the presentation slides. http://blogs.Microsoft.co.il/blogs/sasha/archive/2009/04/04/concurrent-programming-msdn-event.aspx It looks somewhat different than mine, even though I can only assume that the goals and the audience were pretty much the same. http://blogs.Microsoft.co.il/blogs/asafshelly/archive/2009/04/05/video-introduction-to-multicore-programming.aspx This is usually because 'we are not there yet'. Meaning, we don't really have all the answers. If you ask someone about UML you will usually receive the same answers. This is because everyone is in agreement about the fundamental issues. This is not the case with parallel computing. The first thing that comes to mind is that most people either do Procedural C programming...

Video: Introduction to Multicore Programming

  Hi all, As some of you already know I have been giving an introductory lecture to selected company here in Israel. The lecture is over an hour long and talks about Multicore Programming and the world of parallel computing. It is for decision makers and developers. The lecture is featured by Pacific Software and myself. The lecture is limited to large groups of people. At the first opportunity I had to bring a camera with me I got the session on video. This was not so easy since most large...

Super Smart Pointer – Sample Code

Thursday, September 11, 2008

In continuance to my last post about memory allocations from mapped files http://blogs.microsoft.co.il/blogs/asafshelly/archive/2008/09/07/super-smart-pointer.aspx (and because Lior asked for it :) Here is the sample that I used to test the timing: Includes:  #include "stdafx.h"#include <WINDOWS.H>#include <conio.h> #define PAUSE { puts("Ready"); getch(); }     Interface: class AllocBuff{public:   virtual bool New(int bytes) { return(NULL); }   virtual bool Delete() { return(false); }   virtual char* Lock() { return(false); }   virtual bool Unlock() { return(false); }};      Memory Implementation class MemBuff: public AllocBuff{   char* buff;   CRITICAL_SECTION cSection;public:   virtual bool New(int bytes)   {      InitializeCriticalSection(&cSection);      try { buff = new char; } catch(...) { buff = NULL; }      return(buff);   }   virtual bool Delete()   {     ...

Super Smart Pointer

Sunday, September 7, 2008

Memory management is one of the key elements in the world of software. So many bugs come from misusing memory pointers, over-writing buffers, racing over buffers (several threads use the same buffer), deleting a buffer while it is still used, running out of memory, and so many more. To solve this problems we have seen so many methods and technologies used starting with Locks which are flags that help manage access to a buffer, Garbage Collector that helps manage buffer deletion from the Heap, the user of a Stack, Smart Pointers, Reference Counting, Page Protection flags, and so many other...

Multicore Programming (Multiprocessing) Visual C++ Tips: Avoiding Exceptions

Thursday, August 28, 2008

There are still too few online resources available that can help with multicore programming (multiprocessing) so I continue with another tip and this time it is about exceptions and exception handling. See also previous article "Prefer clear execution flow for member function". The computer system as a whole is an extremely parallel system. Interrupts go into the CPU and the CPU handles them by priority. These interrupts can come either from the hardware or from software. When the keyboard has a new key to send to an application the keyboard device raises an interrupt with the CPU and the CPU in turn...

Multicore Programming (Multiprocessing) Visual C++ Tips: member function execution flow

Wednesday, August 27, 2008

Hey all, Long time no read... Well, I've been very busy. I thought that I'd start with a technical post (maybe cause there is nothing that exciting with my life, and maybe because I pretend that this is the case :) As you all know I have beed busy in the are of parallel computing, what people call multi-core programming. I have learned that Object Oriented programming is very problematic with parallel systems and that OO helps us at design time but has almost no benifit for run-time and many times even damages our ability to understand execution flow. See my post on my Intel blog here: http://softwareblogs.intel.com/2008/08/22/flaws-of-object-oriented-modeling/  It is very clear to...