Blocksize and Suprtool Performance

A Suprtool user called with a deceptively simple question: "What blocksize should I use in my files to maximize Suprtool performance?"

The general rule of thumb for most programs is to use larger blocksizes, in order to reduce the number of disc accesses for programs that need to process the file serially. But because of the way Suprtool works, bypassing much of MPE's normal deblocking mechanisms, you don't need to make your blocks large. In fact if you make a blocksize too big, Suprtool will give you this error message:

Error: The input blocksize is greater than 14336 words.

Making your blocksizes as close to 14,336 words as possible will not give the best Suprtool performance. The MPE/iX version of Suprtool can read or write up to 24,576 words with every disc access, by reading or writing multiple blocks at a time. This multiple-block ability (technically, MPE's MR capability) is a major contributor to Suprtool's super speed. If your block is 14,336 words, Suprtool can fit only one 14,336-word block into its 24,576-word buffer. The best blocksize would be one that fills Suprtool's 24,576-word buffer to its capacity by allowing Suprtool to read or write multiple blocks at a time. So even though the maximum is 14,336, a blocksize of 12,288 words would be better than 14,336 because Suprtool could put two blocks in its buffer with one disc access. A blocksize of 8,192 words would be just as good for Suprtool because Suprtool could read or write three blocks per disc access.

To come back to the original question, "What blocksize should I use in my files to maximize Suprtool performance?", the answer is any blocksize that permits Suprtool to most completely fill its 24,576-word buffer with a number of your blocks.

Here is an example of a real situation:

ACCOUNT=  PROD        GROUP=  DATA
FILENAME  CODE  ------------LOGICAL RECORD-----------
                  SIZE  TYP        EOF      LIMIT R/B
FOO               159W  FB        3780       5500  20
File FOO has a record size of 159 words, blocked by 20, giving a blocksize of 3,180 words. Suprtool can fit seven of these 3,180-word blocks in its 24,576-word buffer. Therefore, Suprtool can read or write 140 data records at a time. But seven times 3,180 is only 22,260 words. Theoretically there should still be space for fourteen more records in the buffer (that's (24,576 - 22,260) / 159), if only we could find a blocksize that would fill the buffer more completely. The theoretical maximum is 154 records (that's 24,576 / 159). If Suprtool could access, say, two blocks of 77 records, it would get the maximum performance.

Would other blocking factors work just as well? Another blocking factor that would fit nicely into 154 is 22. Suprtool's performance at accessing seven blocks of 22 records would be identical to accessing two blocks of 77 records. Either way it is only one disc access for Suprtool. A blocking factor of 51 would also allow Suprtool to fit three 8,109-word blocks into its buffer, with almost no wasted space.

Note that on MPE V, or when using the compatibility mode version of Suprtool on MPE/iX, the maximum buffer size is 14,336 words.

....Back to the Suprtool Q&A Page