As an ArgoUML contributor I'm going to blog my activities here, so that they may draw interest by other developers or help other developers when doing tasks similar to what I've done. AND(!) the grand vision that makes an Argonaut what he is, TO THRIVE IN THE BIG DANGEROUS WORLD, TAKING THE Argo TO A GOOD SHORE ;-))

Tuesday, December 14, 2010

Idea: make the binary data library of PCL book parallel friendly

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.

Design

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 binary-class.

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.

No comments:

Reader Shared items

Followers