import os try: os.environ["OMP_NUM_THREADS"] = "1" os.environ["NUMEXPR_NUM_THREADS"] = "1" os.environ["MKL_NUM_THREADS"] = "1" import numpy as np finally: del os.environ["OMP_NUM_THREADS"] del os.environ["NUMEXPR_NUM_THREADS"] del os.environ["MKL_NUM_THREADS"] import utils print(np.sort(np.load(utils.get_numbers_file()), kind='mergesort'))
def sort(): global_unsorted_array = np.load(utils.get_numbers_file()) validate_generated_numbers(global_unsorted_array) local_data = np.array_split(global_unsorted_array, size)[rank] local_data = do_odd_even_sort(local_data) output(global_unsorted_array, local_data)
import os try: os.environ["OMP_NUM_THREADS"] = "1" os.environ["NUMEXPR_NUM_THREADS"] = "1" os.environ["MKL_NUM_THREADS"] = "1" import numpy as np finally: del os.environ["OMP_NUM_THREADS"] del os.environ["NUMEXPR_NUM_THREADS"] del os.environ["MKL_NUM_THREADS"] import utils s = sorted(np.load(utils.get_numbers_file())) print("sorted")
import numpy as np # numpy can be used multithreaded for generation on master import sys, utils ''' generate numbers with e.g.: "python3 generator.py 16" to numbers.npy as binary numpy array ''' size = int(sys.argv[1]) if len(sys.argv) > 1 else 128 random_range = np.arange(size) np.random.shuffle(random_range) np.save(utils.get_numbers_file(), random_range)
try: os.environ["OMP_NUM_THREADS"] = "1" os.environ["NUMEXPR_NUM_THREADS"] = "1" os.environ["MKL_NUM_THREADS"] = "1" import numpy as np finally: del os.environ["OMP_NUM_THREADS"] del os.environ["NUMEXPR_NUM_THREADS"] del os.environ["MKL_NUM_THREADS"] import utils def oddevenSort(x): sorted = False while not sorted: sorted = True for i in range(0, len(x) - 1, 2): if x[i] > x[i + 1]: x[i], x[i + 1] = x[i + 1], x[i] sorted = False for i in range(1, len(x) - 1, 2): if x[i] > x[i + 1]: x[i], x[i + 1] = x[i + 1], x[i] sorted = False return x print(oddevenSort(np.load(utils.get_numbers_file())))
import os try: os.environ["OMP_NUM_THREADS"] = "1" os.environ["NUMEXPR_NUM_THREADS"] = "1" os.environ["MKL_NUM_THREADS"] = "1" import numpy as np finally: del os.environ["OMP_NUM_THREADS"] del os.environ["NUMEXPR_NUM_THREADS"] del os.environ["MKL_NUM_THREADS"] import utils print(np.sort(np.load(utils.get_numbers_file())))