Description
A big goal when writing parallel code is that ... things run in parallel and go faster. But sometimes it is hard to tell whether or not the desired parallelism is occuring, and if it is not, it can be difficult to tell why it isn't there. Some sort of profiling tooling should exist to help programmers with this problem. An example of such a system is Haskell's ThreadScope, which provides a wealth of profiling information in a pleasing GUI interface. This is a very high bar for the long term, but in the short term there is stuff we can do.
The most basic useful output would be to allow a user to "watch" certain tasks, and receive an output of what times the tasks are active and on what threads. This could then be analyzed in another tool to see "how parallel" the code was. An example API would be to wrap "watched code" in a macro that expands to two debug print statements wrapping the code, with those debug statements printing scheduler id, timestamps, and a user-specified identifier to a log file.
I don't think much more should be planned for the short term, but awareness of a ThreadScope-like goal could influence scheduler design in minor ways.