- There is an application, written using Boost Template library, meant for QUICK processing of bulk text files (cca 50-100Gb each).
- There is a huge, quick and expensive piece of hardware with HUGE amount of RAM and multiple CPU.
- There is [theoretically] any possible UNIX-like OS, even Microsoft Windows(R) is considered.
- Boost Thread Pool extension is used; previously memory mapped files through memory_segment have been used, now got rid of the entire Boost::interprocess.
- There are NO explicit data items in the application's algorithm to be shared by threads, each has its own piece of input file, thus - there is NO explicit concurrency.
PROBLEM:
- Ensure fast processing without locks and threads sleeping.
Currently the threads sleep on some internal mutex. We thought it's been boost::interprocess (specifically - mmap, wrapped by a mutex), but it apparently isn't so.
SPECIFIC QUESTION:
- How could we get rid of Boost locks?