Wrote a different implementation of NLLOpenMP using atomics, much slower than the original implementation. If there are a lot of threads and a single variable being updated it is best to seperate have a variable per thread and combine results of each thread at the end