On 2012-02-02 15:43:03 +0000,
hanc...@bbs.cpcn.com said:
> On Feb 1, 3:15 pm, John W Kennedy <
jwke...@attglobal.net> wrote:
>> It's the basic "clock ticks per second" in the processor. 360s were
>> more commonly rated in terms of the speed of main storage. The 65 was
>> 0.75 microseconds per doubleword. But a more proper comparison would be
>> based on the internal cycle of the 65, which appears to have been 0.2
>> microseconds, which would give a rate of 5MHz, or 0.005GHz.
> O M G.
> Thanks for the explanation. (I can't help but wonder how long our S/
> 360-40's daytime workload would take to process. Of course, using a
> 2415 tape drive didn't help much <g>)
> It just amazes me that such super fast and complex machines are able
> to keep all the multiple tasks of CPU and I/O separate without
> clashing and run inefficiently.
> I once had sole use of a mainframe (a S/370-135, IIRC) and
> experimented with wallclock time running several jobs either singly or
> in multiple. In turned out that due to I/O clashing, it was actually
> slightly faster to run the jobs singly (back to back) rather than
> together.
The situation is different on modern systems, because:
Files are not allocated by tracks or cylinders,
Disk drives have buffers,
Disk I/O is performed through a single pool of shared buffers
in the operating system.
> (I also learned that it was most efficient for COBOL programs to use
> binary for subscripts but packed decimal in other numeric fields.
> Binary was not good in plain numeric fields of a business application--
> the convert instructions apparently too a lot of time, much more the
> pack).
Yes indeed. But the new mainframes include decimal floating-point,
which I suspect may be even faster.
>>> out-of-order execution design -- ???
>> Wherever possible, if the system can see that it is possible, and there
>> are electronic resources available, an instruction can be executed
>> before the instruction before it has finished. This goes back at least
>> to the 360/91. It can also, wherever there is a conditional branch, try
>> to follow both ways, eventually discarding the results of the path that
>> wasn't followed. . . .
> Does such parallel processing really save that much CPU time in
> business applications, such as a batch accounting job and an on-line
> CICS system?
> That is, a programming mix written by ordinary (sloppy)
> programmers as opposed to specialists in parallel processing?
> I could understand in a bank of MOVE statements or a complex math
> formual (evaluate the terms in parallel) there would be a time
> saving. But it seems to me so much processing is dependent on the
> results before. Doing both paths and a discard seems wasteful.
Not if you have extra adder circuits, etc..
It's true that you don't gain so much when doing packed-decimal
arithmetic, but most of the work on a modern mainframe is in handling
I/O and dispatching transactions. The actual accounting arithmetic
doesn't usually amount to much. And now that virtually all code is
compiled, you can rely on the compiler to write code that will
parallelize nicely, just as we've relied for years on having the
compiler allocate registers sensibly.
> I believe parallel processing was a big part of the design and
> expected speed of IBM's Stretch computer. But in actual practice it
> didn't work as well and the effective throughput wasn't as good as
> expected, so IBM had to reduce the price and take some embarassment.
The Stretch attempted to be 100 times as fast as the state of the art
at the time it was announced. That was too much at one bite, and they
got only about 75 times. But we've learned a lot since then. Remember,
the z196 may be much faster than a 360/65, but so is an iPhone. Heck,
the /screen/ of an iPhone, all by itself, is a bigger, faster computer
than a 360/65, and a single USB 2.0 port can outperform all the
channels of a maxed-out 65 put together.