The OpenMP specification requires the size of each chunk (1) be proportional to the number of unassigned iterations and (2) decreasing to 1.
There are algorithms of analytical calculation of the chunk size using floating arithmetic that produce non-monotonic decrease of chunk size. For example, for N iterations the chunk number i could be calculated as
ch = N * pow(p,i) - N * pow(p,i+1),
where p<1.0 is some parameter of the algorithm (of cause the ch should not be less than given chunk_size except for the last chunk).
Is this conforming method? Or should chunks have strictly monotonously non-increasing sizes?
E.g. is the sequence of chunks acceptable for schedule(guided,3):
7, 8, 6, 6, 6, 5, 4, 5, 4, 3, 3, 3, 3,...?
There are two pairs "7, 8" and "4, 5" those break the "decreasing" rule, though this sequence obtained using algorithm mentioned above which in theory provides "proportional" and "decreasing" floating numbers, but loses these attributes after conversion to integer type.