I'm still reading and learning from the Practical Common Lisp book by Peter Seibel [it is hard to believe that I started in 2007!]. When reading the chapter 24. Practical: Parsing Binary Files, which describes and provides a library for reading binary files, and upon reaching the variable:
(defvar *in-progress-objects* nil "TODO or FIXME, how to make this part of the code more parallel friendly?")
I stopped reading and started wondering about the TODO or FIXME I just wrote. The following is the resulting ideaware...
His it worth it or will the disk access eat the advantages?
Yes if there is parallel disk access, meaning in disk array architectures and for really big files. For small files the parallel access isn't worth it because the disk array will know how to do it in a parallel way.
An additional option to a certain
binary-class would mark that
binary-class as one that would spoon a new process or thread for writing (NOTE to self write and read operations aren't symmetric from a performance point of view) or reading an instance of that
Additional bindings of the dynamic variables would have to be created for the symbol that are to be called in parallel, i.e., a new thread based call would mean a new lexical environment is created in which the new binding exists.
It would be fun to port this library to Clojure / JVM languages. I think that this would be allowed because it isn't the original work that would be made available.