StackBlock
Block code is feature rich software that is able to perform Density Matrix Renormalization Group calculations on Hubbard, Heisenberg, and ab-initio Hamiltonians. Sharma was the main author the Block code while he was a member of the Chan group. StackBlock is the successor of the Block code with three significant improvements. First, by optimizing the order of tensor contraction the CPU cost of performing calculations is reduced by a factor of between 2 to 4. Second, by using an internal stack based memory allocator, StackBlock allocates/deallocated memory at an O(1) cost and is immune to memory fragmentation. Finally, by using a hybrid OMP/MPI parallelization, StackBlock is able to deliver much better scaling with the number of CPUs, which in combination with lower CPU cost per node can show gains of more than a factor 10 compared to the Block code.
StackBlock works with virtually identical input file as the Block code, with the exception that two new optional input parameters specify how much memory will be dedicated for the calculation and how many threads per processor will be used. Example of lines in the input file with these two options are as follows
memory, 8, g !8 gigabyte of memory will be used
num_thrds 10 !each processor will spawn 10 threads