A Shared-Memory Multiprocessor Implementation of Data-Parallel Operators for ML

We have designed and implemented an asynchronous data parallel scheduler for the SML NJ ML com piler Using this general scheduler we built a data parallel module that provides new operators to ma nipulate sequences i e arrays vectors in parallel Parallelization concerns such as thread creation and synchronization are hidden from the application programmer by ML s module abstraction We nd that languages with modules higher order functions and automatic parallel storage management can in this manner seamlessly support data parallel operators An implementation of applications using the new se quence module on an eight processor shared memory machine indicates that in some cases useful speedup is possible with our approach