issue: icpc v13 std::thread::hardware_concurrency() returns 0
solution: check return value, and default to 8 if 0 is returned
Harmless code formatting changes
Added <iostream> header
New distributed memory cache implementation
We DO NOT pre-allocated the cache pool for the entire share at each node, since this can be too large
Instead, each node maintains its own LRU cache, and generate columns as needed, and storing it in the local
cache for future reference.