Relaxed-Memory Concurrency

"This page collects work by a group of people working to develop mathematically rigorous and usable semantics for multiprocessor programs." The gap between what the manual says, what the processor actually does, and what programmers can reason about -- lots of interesting stuff.

to architecture cmp202 concurrency cpu memory-models ... on 24 October 2018

50 Shades of Go: Traps, Gotchas, and Common Mistakes for New Golang Devs

Mostly interesting to me for the concurrency problems.

to concurrency errors go language-design ... on 24 October 2018

Communicating Sequential Processes (CSP), by C. A. R. Hoare (PDF Version)

Online version of Tony Hoare's classic book.

to concurrency csp ... on 12 February 2018

fchan-go/writeup at master · google/fchan-go

Finally trying to produce a better channel implementation for Go (bet they don't cite our paper though!).

to channel concurrency go process-oriented ... on 26 February 2017

Making the move from Scala to Go, and why we're not going back | Movio Blog

POP being one reason: "It's not just the fact that channels and goroutines are cheaper in terms of resources [...] They are also easier to reason about when coding."

to concurrency go language-design process-oriented scala ... on 26 February 2017

libdill

Lightweight fork-join concurrency in C.

to c concurrency coroutine lightweight-processes parallel ... on 14 October 2016

Lock-free programming for the masses · KC Sivaramakrishnan

"We use take l_fork <*> take r_fork to atomically take both of the forks." Reagents in Multicore OCaml -- which are semantically (more or less?) equivalent to the multiway barriers that Neil implemented in CHP.

to concurrency multiway ocaml reagents synchronisation ... on 14 October 2016

Notes on concurrency bugs

A couple of studies (now a few years old) looking at what kinds of concurrency bugs show up in real software.

to concurrency correctness debugging software-engineering ... on 28 August 2016

Visualizing Concurrency in Go · divan's blog

The Go community reinventing what occam was doing in the 80s, again. I'm still not sure whether this is a positive thing or not.

to concurrency go visualisation ... on 28 February 2016

Nim Programming Language

It's like Python but with a "parallel:" construct and a usage checker. Sounds familiar to anyone? :)

to concurrency language-design nim occam python ... on 22 March 2015

Tags related to concurrency

- concurrency
 
1 active-objects
7 ag0803
1 algol
2 algorithm
1 amusements
1 android
1 apache
1 architecture
1 arm
1 assembler
1 atomic
3 atomics
1 audio
1 benchmarking
1 beta
1 boost
1 broadcast
1 buffering
1 bug
1 bugs
5 c
9 c++
1 channel
2 channels
1 client-server
1 clojure
1 cmp202
4 compiler
174 concurrency
2 conference
6 continuations
1 cop
1 coroutine
5 coroutines
1 correctness
3 cpu
2 cs
9 csp
1 data-structures
2 debugging
6 design
1 distributed
1 ease
3 electronics
4 embedded
7 erlang
1 errors
4 etext
1 exceptions
1 fgmpi
1 formal-methods
1 forth
2 fpga
2 functional
1 future
2 futures
2 games
1 gcc
1 gcd
9 go
1 gpgpu
1 gprof
1 greenlets
1 guitar
1 handel-c
5 haskell
1 helios
1 herd
2 intel
1 ipc
3 java
4 javascript
1 journal
9 language
17 language-design
1 lightweight-concurrency
2 lightweight-processes
1 lightweight-threads
2 linux
1 lisp
4 lockfree
2 lua
1 lwp
2 maths
1 matlab
1 memory
1 memory-model
3 memory-models
2 message-passing
1 microcontroller
1 microprocessor
1 mobile
1 mobility
3 model-checking
1 monad
1 monads
1 mozilla
2 mpi
4 multicore
1 multicore-msc
1 multiway
1 mutex
4 network
3 networking
1 newsqueak
1 nim
1 nonblocking
1 oberon
1 ocaml
10 occam
3 oo
1 openmp
2 os
1 papers
18 parallel
5 parallelism
4 patterns
2 performance
2 perl
1 petri-nets
1 phone
1 posix
1 power
1 process-editor
4 process-oriented
1 profiling
22 programming
1 propeller
1 protocol
1 prototypes
1 pthreads
8 publications
16 python
1 queue
1 rcu
1 reactive
1 reagents
1 reliability
78 research
5 retrocomputing
1 ruby
2 runtime
1 runtimes
1 safety
2 scala
1 scalability
1 scheduler
1 scheduling
1 scripting
1 server
1 shell
1 simulation
29 software
2 software-engineering
1 sparc
1 spin
1 splash
2 static-analysis
1 stm
2 synchronisation
2 tbb
21 teaching
1 theory
2 thesis
1 threading
5 threads
1 to-package
2 transactional
1 transactional-memory
2 transputer
1 transterpreter
2 tutorial
1 types
1 unix
1 valgrind
1 video
1 visualisation
1 vm
1 wasp
9 web
1 x86
2 xmos