Entries:
Comments:
Posts:

Loading User Information from Channel 9

Something went wrong getting user information from Channel 9

Latest Achievement:

Loading User Information from MSDN

Something went wrong getting user information from MSDN

Visual Studio Achievements

Latest Achievement:

Loading Visual Studio Achievements

Something went wrong getting the Visual Studio Achievements

STM.NET: Who. What. Why.

Download

Right click “Save as…”

  • High Quality WMV (PC)
  • MP3 (Audio only)
  • MP4 (iPhone, Android)
  • Mid Quality WMV (Lo-band, Mobile)
  • WMV (WMV Video)
Software Transactional Memory is no longer a pipe dream or the stuff of academics. STM.NET, as it's called, is ready for your experimentation.

The goal of STM.NET is to be able to exploit concurrency by using components written by experts and consumed by application programmers who can then compose together these components using STM. Transactional memory provides an easy-to-use mechanism to do this safely. STM.NET is of course not a concurrency silver bullet and this is an experimental rrelease of the .NET Framework that allows C# programmers to try out this technology, specifically a particular implementation of STM. 

The STM team really needs your feedback to understand if they're doing the right things to meet your needs. Traditionally, using STM for simple trasactional tasks didn't make sense. The overhead was too high. Is this still the case? What needed to change in the .NET Framework to enable STM.NET? Remember, this is a .NET Framework experiment to enable STM for managed code.

Here, we meet most of the team responsible for STM.NET:  Chris Dern‎, Yossi Levanoni‎, Sasha Dadiomov‎, Weirong Zhu‎, Sukhdeep Sodhi‎ and Lingli Zhang.

Tune in, meet the team and get a good sense of what this very small team has accomplished with STM.NET and  learn about some of the paths taken to get there. This represents really great engineering. Congratulations to the STM team! Now, Niners, go get the bits!

Enjoy.

Tags:

Follow the Discussion

  • Fantastic. I'll definately be giving this a workout. You folks have been cooking up some awesome technology. Can't wait in particular to get my paws on Erik and Wes's "Rx" framework in the next VS2010 beta.

  • rhmrhm

    I'm guessing you have to watch the first STM video to understand what they are talking about here?

  • Allan LindqvistaL_ Kinect ftw

    cool stuff Smiley an extremly complicated thing wrapped up in an extremly simple syntax (soon):

    atomic{

    someNumber ++

    }

    this is why i love .net,  its embraces academic stuff but also remains practical Smiley

     

    but am i understanding correctly that the stm stuff is only used when you actually invoke it? if i dont use the stm stuff at all, is there a perf diffrent between the stm.net and the regular .net?

  • ok, I will admit it. I don't understand how all of this works. What is the method by which the system determines that a transaction completed without the shared memory being mucked up by another transaction from another thread? Maybe all objects affected are marked with a unique transaction id. At transaction commit time all the affected objects are checked that their "most recent affecting transaction id" = transaction id of the committing transaction.  Or is there a List<object> of all objects affected by all transactions? When committing the transaction, scan this master list from the start of the committing transaction to the end of the list. If the affected objects appear elsewhere in this range of the list, the transaction cant be committed.

     

    At transaction commit time are any tradtional locks employed? Is so, is the problem with locks more one of the programmer having to decide when and how to use them vs the system wide performance hit of the lock itself?

     

    I suggest that locks themselves be covered in a C9 episode. Do locks run faster on current microprocessors than in the past? Can each core of a processor set and release locks concurrent with other cores?

     

    On topics such as this, where slow viewers such as myself have to repeat and think about the material to understand it, can I suggest sub titles be displayed on the screen? Or a printed transcript?  I tried to view the original video in this sequence, the one of the two researchers in England.  The fellow on the right was so soft spoken, with a thick accent and poor white board penmanship. I could not follow what he was saying.

     

     

  • CharlesCharles Welcome Change

    I'd reccommend watching this for some background: http://channel9.msdn.com/shows/Going+Deep/Software-Transactional-Memory-The-Current-State-of-the-Art/

     

    C

  • thanks Charles.  Was able to watch the first 30 minutes of that video and what was discussed was the rational for using the STM library functions. Not how the STM framework does what it does.

     

    If I was to write my .NET transaction code in a lock free, STM kind of way ( w/o using STM.NET ), how would I do it? Perhaps code a first pass that assembles all the objects involved in the transaction and composes the executable steps involved. Then you acquire a lock, run the steps against the assembled objects and release the lock.  This 2nd pass being the equivalent of the commit cycle in STM.NET. Just guessing.

     

    another suggestion for the C9 videos.  Check out bloggingheads.tv http://www.bloggingheads.tv/ They provide an overview of what is discussed in the video. With links to the point in the video where the sub topic is discussed.  Just something to spend the extravagant C9 production budget on. Smiley

     

    thanks,

     

    -Steve

     

  • CharlesCharles Welcome Change

    This is actually something we are thinking about Wink And there's something even cooler in the works... Stay tuned,

     

    C

     

     

    PS: The STM team blog contains a great del of information -> http://blogs.msdn.com/stmteam/ and the Programming Guide is your friend -> http://download.microsoft.com/download/9/5/6/9560741A-EEFC-4C02-822C-BB0AFE860E31/STM_User_Guide.pdf

  • I gave STM.NET a try the first week it was released. 

     

    The basic API usage is simple: for most problems, a simple "put this code inside Atomic.Do block" does the trick. Very cool.

     

    The support is great, too. I posted a complex, real-world problem we are facing at the company I work for, and asked how STM.NET could be applied. Several of the guys quickly responded with some excellent suggestions.

     

    So, what does the future hold for STM.NET? The main concern, I think, is the performance. A 5-7x perf hit over non-transaction code is hefty and daunting. But I suspect the team is already working on these perf issues.

     

    I'll be keeping a close eye on this project. 

  • thank much!

     

    computerslanditcomputer computerslookup laptop video card

Remove this comment

Remove this thread

close

Comments Closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums,
or Contact Us and let us know.