parallel merge sort