multithreading (original) (raw)
| | |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
From http://herbsutter.spaces.live.com :
Parallel Computing Releases at Microsoft
For those of you who may be interested in concurrency for Microsoft platforms, and .NET in particular, I'm happy to report some fresh announcements:
- MSDN has launched a Parallel Computing developer center. This is a section of the MSDN site focused on "providing information, ideas, community, and technology to developers to make it easier to write programs that perform and scale well on parallel hardware."
- You can download and try a CTP "preview" of the .NET Parallel Extensions (PFX). These compile and run, but remember they're CTP quality. PFX currently has two major parts:
- PLINQ: Parallel Language Integrated Query, a parallel version of LINQ with extensions like .AsParallel.
- TPL: Task Parallel Library with extensions like Parallel.For loops.
- There's also a PFX Team Blog.
PFX is for .NET concurrency development, but of course we are (and personally I am) working on native development tools, including for C++ specifically, that are at least as exciting. Stay tuned here for future news. In the meantime, enjoy these bits and the resources and discussion on the Parallel Computing developer center and forums.
| | |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
В статье "What nine of the world’s largest websites are running on" встретил ссылку на http://highscalability.com и картинку:
P.S. Наверное, это offtopic для multithreading (надеюсь, полезный:) - а где такое обсуждают?
Post A Comment | | Flag | Link
| | |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
"CLR 2.0 memory model" - it was quite interesting to know that CLR's memory model is not specified yet but Java's is.
1 Comment | Post A Comment | | Flag | Link
| | |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
http://news.google.com/?ned=us&ncl=1121846917
Упомянутые в предыдущем посте "Cluster Computing and MapReduce Mini Lecture Series" - часть этой инициативы. Все курсы находятся здесь:
- http://code.google.com/edu/content/parallel.html
Где раздобыть железа не университетам - пока не ясно.
Насколько Amazon EC2 может подойти?
P.S. Не эта ли инициатива помогла акцииям Google подрости на днях?
Post A Comment | | Flag | Link
| | |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
http://gatekeeper.dec.com/pub/DEC/SRC/research-reports/abstracts/src-rr-122.html
Interesting to read in general and about not using reentrant mutexes in particular:
A way to satisfy condition (2) is to use reentrant mutexes, that is, mutexes that do not deadlock when re-locked by the “same” thread (for example, see [Forté 1994]). On one hand, this solution is too liberal, because it allows a method to call an arbitrary method of a different object, which then can call back a method of the present object without deadlocking. This goes well beyond our simple desire that a method should be allowed to call its siblings: it may make objects vulnerable to unexpected activations of their own methods, when other methods have not yet finished reestablishing the object’s invariants. On the other hand, this solution may also be too restrictive because the notion of “same” thread is normally restricted to an address space. If we want to consider control threads as extending across sites, then an implementation of reentrant locks might not behave appropriately.
We solve this dilemma by adopting an intermediate locking strategy, which we call self serialization, based on the notion of self-inflicted operations described in section 3.4. Serialized objects have an implicit associated mutex, called the object mutex. An object mutex serializes the execution of selection, update, cloning, and delegation operations on its host object. Here are the simple rules of acquisition of these object mutexes:
- External operations always acquire the mutex of an object, and release it on completion.
- Self-inflicted operations never acquire the mutex of their object.
Post A Comment | | Flag | Link
| | |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
"A state is (PC, stack). A concurrent program is (PC, stack)+." - просто и доходчиво излагает Rob Pike. И email у него простой - r@google.com. :)
Post A Comment | | Flag | Link
| | |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
From http://binkley.blogspot.com/2007/06/all-dancing-all-singing-locksmith.html
This is a list of features which made me look twice:
- Split Lock
- Merge Locks
- Make Class Thread-Safe
- Convert Field to Atomic
- Convert Field to ThreadLocal
- Lock Call-Sites of Method
- Convert Simple Lock to Read-Write Lock
- Convert Read-Write Lock to Simple Lock
- Convert Synchronization Field to Lock
- Split Critical Section
- Shrink Critical Section
- Merge Critical Sections
P.S. "made me look twice" - how to translate this into Russian?
2 Comments | Post A Comment | | Flag | Link