Init version
some small changes in defining external flag and external data
the version that works out-of-order and I measured the impact of buffer size on the number of loads/stores in external/local memory