Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I might be confusing things here but does concurrency, at least the definition give here, not directly map to task parallelism?

Task parallelism and data parallelism are two important concepts and the tools we need to implement them are very different. The two words used by the author to convey the difference between those two concepts are not chosen optimal in my opinion. There seems to be a hierarchy between concurrency and parallelism whereas task parallelism and data parallelism are directly comparable.



Task/data are orthogonal to concurrent/parallel.

"Task parallel": compute a() in parallel with b().

"Data parallel": compute a(0), a(1), ..., a(N) in parallel.

"Task concurrent" (not idiomatic, but hear me out): handle mouse events concurrently with keyboard events.

"Data concurrent" (again not idiomatic): handle events from 1000 sockets concurrently.


I don't see how

compute a() in parallel with b() and

handle mouse events concurrently (could be a()) with keyboard events (could be b())

differ and how does

compute a(0), a(1), ..., a(N) in parallel differ from

handle events from 1000 sockets concurrently which would be something like a(event0) a(event1)?

Don't we require the same tools for "task parallel" and "task concurrent" as well as "data parallel" and "data concurrent"? To me they don't seem orthogonal but I believe they are very much the same thing.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: