memory profiling for ironclust

# Goal: expand # channels and durations by tiling and see how the memory use scales per channel and per duration basi

[x] ## 1. expand datasets by tiling.
– cache the original (64ch, 1200s), and tile it

[x] ## 2. run the memory benchmark, parameter loop
– parameter loops: {param_set0.prm, param_set1.prm}
try to break the memory limit (256GB in my workstation)
~1MB/chan/min (3.43 MB/chan/min raw, 153GB/380ch/2hrs)

[x] ## 3. plot the scalability benchmark
– memory, speed, accuracy as a function of channels and duration

# Data storage problem on thunderbolt
[x] order thunderbolt enclosure
[ ] migrate
[ ] 18.04 has thunderbolt driver already mounted
do not install sudo apt install bolt
[ ] confirm interoperability between desktop and notebook

In Ubuntu, the memory profiling precision above 20MB (MB is 10^6 whereas MiB is 2^20)
Dell precision (T7919) could have a thunderbolt 2 card installed.
(compare 1.3 GB/s vs 50 MB/s over the network)

# IronClust remaining work
1. documentation
2. benchmark scalability, memory, accuracy, channel count, density, recording duration
3. make it faster using remote slurm interface

# Ironclust result section
## accuracy
– accuracy comparison
– probe layout comparison. density. columns
– drift handling comparison

## scalabiilty
– scalability plot: memory and runtime scaling
– accuracy vs. speed plot
– speed comparison with other software
– speed scalability using multiple computing cores

## usability
-input and output format