As far as i understand, ndrange global size should be a multiple of local size.
But in case it's not, how does OpenCL handle it? (better said, does OCL handle it?).

I mean, how many "groups" of size = local_size will be launched.

For example, which one would be right for global size 1000 and local_size 512?:
a) We'll have 2 groups of size 512.
b) We'll have 1 group of size 512.
c) we'll have 1 group of size 512 and a group of size 488.

And... it's strictly defined by the standard? or it's implementation dependant.