By: rwessel (rwessel.delete@this.yahoo.com), May 24, 2022 8:22 am
Room: Moderated Discussions
Simon Farnsworth (simon.delete@this.farnz.org.uk) on May 24, 2022 4:18 am wrote:
>
> This is a surprisingly complex area even when you're running different processes on different machines.
> IBM's solution for Z Series, where money is basically not an object, is to say that processes are
> only told about the lowest common denominator features of the processors they could run on, and to
> enable what would be P core only features on Intel, you have to confine a process to P cores (otherwise
> they get E core only features, even though a subset of processors can run P core code).
Although in Z's case, that only applies across machines* in a cluster - no Z machines support cores with different ISAs** within a single box.
There have been a few historical cases where different sets features were allowed on different cores, but it tended to be fairly major stuff, and the core counts at the time were pretty small. Two that stand out was the old vector facility, which was a traditional long-vector design. Contrary to much of the hoped-for AVX-512 usage, this was strictly going to be used in numerical HPC applications, so the simpler approaches (trap and move, for example) would work fairly well. In the pre-XA days, some cores couldn't do I/O at all, or only drive some of the channels on the machine, and the OS had the schedule I/O code appropriately.
*Loosely. Individual partitions on a single machine can be in different clusters (or standalone, of course). The reported features are specific to the collections of machine partitions in a specific cluster, so two different partitions on the same machine might well report different features if they're in different clusters.
**Other than for licensing purposes. A bit oversimplified, the traditional OS's execute a secret instruction at startup, which prevents them from running on the cores licensed (for less money) to run things like Linux. The cores not licensed for the traditional OS's won't execute that instruction. Some of the "assist" processors, which can be used to run Java or other authorized*** workloads exist, but those mostly don't have different characteristics/features than the "normal" cores, they're just cheaper. The OS can schedule authorized work on those if they're available, but that workload will all run on a "normal" core if the "assist" cores are busy or unavailable.
***There was a company that for a while was selling software that would "authorize" a great deal of traditional workload to run on the assist processors, which would save the customers considerable money. IBM shut that down pretty quickly.
>
> This is a surprisingly complex area even when you're running different processes on different machines.
> IBM's solution for Z Series, where money is basically not an object, is to say that processes are
> only told about the lowest common denominator features of the processors they could run on, and to
> enable what would be P core only features on Intel, you have to confine a process to P cores (otherwise
> they get E core only features, even though a subset of processors can run P core code).
Although in Z's case, that only applies across machines* in a cluster - no Z machines support cores with different ISAs** within a single box.
There have been a few historical cases where different sets features were allowed on different cores, but it tended to be fairly major stuff, and the core counts at the time were pretty small. Two that stand out was the old vector facility, which was a traditional long-vector design. Contrary to much of the hoped-for AVX-512 usage, this was strictly going to be used in numerical HPC applications, so the simpler approaches (trap and move, for example) would work fairly well. In the pre-XA days, some cores couldn't do I/O at all, or only drive some of the channels on the machine, and the OS had the schedule I/O code appropriately.
*Loosely. Individual partitions on a single machine can be in different clusters (or standalone, of course). The reported features are specific to the collections of machine partitions in a specific cluster, so two different partitions on the same machine might well report different features if they're in different clusters.
**Other than for licensing purposes. A bit oversimplified, the traditional OS's execute a secret instruction at startup, which prevents them from running on the cores licensed (for less money) to run things like Linux. The cores not licensed for the traditional OS's won't execute that instruction. Some of the "assist" processors, which can be used to run Java or other authorized*** workloads exist, but those mostly don't have different characteristics/features than the "normal" cores, they're just cheaper. The OS can schedule authorized work on those if they're available, but that workload will all run on a "normal" core if the "assist" cores are busy or unavailable.
***There was a company that for a while was selling software that would "authorize" a great deal of traditional workload to run on the assist processors, which would save the customers considerable money. IBM shut that down pretty quickly.