You shouldn't base the "broadness" of a patent on how general the title is. What is covered by the patent is limited by what is in the claims (especially the independent claims). The longer and more detailed any individual claim is, generally the narrower the protection. In this case the first claim is:
- A computer implemented method comprising:
receiving, during runtime of an application program, a capability requirement via arguments of an API (Application Programming Interface) request specified in source code of the application program for one or more processing devices to execute one or more threads of the application program, wherein the capability requirement includes one or more of: attributes associated with a dedicated texturing hardware support, a double precision floating point arithmetic capability, a dedicated local memory, a stream variable cache, a stream image cache, or synchronization primitives; and
in response to the API request, generating one or more compute identifiers during the runtime for use by the one or more threads, at least one of the one or more compute identifiers specifying the processing devices capable of executing the threads according to the capability requirement, wherein the generating comprises matching the capability requirement with a device capability of the one or more processing devices, and determining one or more matched processing devices according to the matching.
Thats a lot of text including requiring "dedicated texturing hardware support, a double precision floating point arithmetic capability, a dedicated local memory, a stream variable cache, a stream image cache, or synchronization primitive".
I'm not skilled in this field, but this doesn't necessarily seem to be a broad patent covering all implementations of multi-threading.