(xstack-intel) Took in changes from 01.org (xstack-intel) to get Cholesky implementation
(xstack-intel) add some incomplete work for fsim like policy domain support
some code restructuring
fix instantiateModel so that it would create ocr_model_t.nb_instances policy domains rather than 1
(xstack-intel) add more fsim-like-architecture support with some copy-paste code and some new code
initial support for multiple policy domains (though nothing for inter-policy-domain yet)
(xstack-intel) oops forgot to stage in the modified files
(xstack-intel) staged commits for debugging
(xstack-intel) staged commits for debugging, stage 2
(xstack-intel) found the bug, now trying to get the mapping between schedulers and policy domains
(xstack-intel) move event,task factories into policy domains, which also helps debug fsim destroy issues
(xstack-intel) there does not seem to be a need to separate xe/ce tasks/events/factories so now they are merged for readability and we may separate the necessary bits on the future on demand
(xstack-intel) add mapping functions for fsim scheduler policy domain relations
(xstack-intel) policy domain should be reached from scheduler, not from worker
but it is taste so we may just undo this bit
and this helps us open up the configuration pointer for workers, which we may use for mapping
(xstack-intel) add per instance configuration for runtime entities to support policy domains with nb_instances>1 to be handled
use that support to fix the hacky worker id passing
(xstack-intel) introduce a multiple producer single consumer FIFO deque with the push end locked
change the config file to support multiple data structure types for CE, one for work one for messages
change the driver to create all policy domains before starting any
change the runtime model to support multiple workpiles for CEs (one for work, one for messages) and XEs (one for assigned work, one for work shipping)
introduce a preliminary policy domain interface for work handing in or out
support for multiple task and event factories per policy domain, and support for showing only a user callable interface
add a class hierarchy for tasks to differentiate between executable tasks and message tasks

introduce CE and XE schedulers with the policy described below:
   when the application code is running, every created task gets assigned to CE's work queue, as CE is the one running that code
   when the master CE hits the ocrCleanup it turns into a CE worker
   XEs check their assigned work piles for work to execute
      if there is work, the XE executes it
         if this work creates new tasks, it gets pushed into the XEs work shipping work pile
         then it creates a message task and pushes it into the CE through policy domain hierarchy to handle
         and continues execution of the task
      if there is no work assigned, it falls asleep
   CEs check their message work pile to process
      if there is a message of type GIVE_ME_WORK
         the CE scheduler changes into executable work popping mode
         tries to pop executable work from its work pile
            if there is executable work
               the CE pushes it into the XEs assigned work pile
               and wakes up the XE
            if there is no executable work, it pushes the message back to itself to serve later
         the CE scheduler reverts back to message popping mode
      if there is a message of type PICK_MY_WORK_UP
         tries to pop executable work from the messenger XE's work pile
         pushes the popped work into its own executable work pile

for code deduplication:
   make fsim.h include hc.h
   make xe_worker derive from hc_worker, and extend it with a condition variable and mutex for conditional wait support, to simulate turning off an XE
   make XE and CE schedulers extend HC scheduler
   make fsim event an alias for HC event
   expose the HC worker interface so that it may be reused for fsim workers
(xstack-intel) Initial commit for statistics gathering:
    - Defined main structures (ocr-statistics.h)
    - Added some low level synchronization support

Not working at this point.
(xstack-intel) Minor changes/cleanups to the Cholesky code on FSim
Added input files for FSim cholesky (small ones for now)
(xstack-intel) Continued work on statistics:
    - Messaging functions are complete
    - Code compiles properly
    - Reworked some of the lock stuff to use factories
    - Reworked debugging macros
(xstack-intel) Continued work on statistics gathering:
    - Enabled by default (in Makefile) the statistics mode and full debug messages
    - Added some simple messages and filters
    - Preliminary integration into the code
(xstack-intel) Finalized initial statistics gathering function:
    - Very simple events are dumped to a file
    - Events are dumped when EDTs/DBs are destroyed so if no destruction occurs, no statistics are printed
      for that object
(xstack-intel) Reindent the code to 4 spaces everywhere to prevent future conflict with other branches.
Please use 4 spaces.
(xstack-intel) initial place tracking for possible use in the upcoming locality aware scheduling