  Parallel loops are an important part of OpenMP programs. Efficient scheduling
of parallel loops can improve performance of the programs. The current OpenMP
specification only offers three options for loop scheduling, which are
insufficient in certain instances. Given the large number of other possible
scheduling strategies, it is infeasible to standardize each one. A more viable
approach is to extend the OpenMP standard to allow for users to define loop
scheduling strategies. The approach will enable standard-compliant
application-specific scheduling. This work analyzes the principal components
required by user-defined scheduling and proposes two competing interfaces as
candidates for the OpenMP standard. We conceptually compare the two proposed
interfaces with respect to the three host languages of OpenMP, i.e., C, C++,
and Fortran. These interfaces serve the OpenMP community as a basis for
discussion and prototype implementation for user-defined scheduling.
