Browse Prior Art Database

THE STORAGE ALLOCATION OF THE LINEAR PROGRAMMING CODE

IP.com Disclosure Number: IPCOM000128839D
Original Publication Date: 1956-Jul-26
Included in the Prior Art Database: 2005-Sep-19
Document File: 5 page(s) / 30K

Publishing Venue

Software Patent Institute

Related People

Judd, H.A.: AUTHOR [+3]

Abstract

The handling of storage assignment and subroutine interconnections for the 704 linear programming codes are discussed. The available storage of the machine is divided into two main parts -- code and data. Their layouts are fairly independent of one another and the programs include routines for automatic ";housekeeping"; during loading and running of a Job. Flexibility is provided for systematic modifications in the programs or for machines with various storage facilities. have two reasons for discussing the storage allocation that we used in the coding of the Linear Programming problem. The foremost reason is to increase your understanding of the operation of the LP code, and secondly, I think it is an excellent solution of the storage allocation problem for any big general program. The 704 code for solving the Transportation problem, which I worked on in New York, solves the Transportation problem admirably, but it lacks the tidiness that a good storage layout provides. To begin with, the LP code was designed for a 704 with 4096 words of magnetic core storage, one drum unit, five tape units, a card reader, a printer, and a punch. Only four tape units are necessary if no off-line printing is desired. The code has already been modified to take advantage of the additional 4096 words of core storage which has been added to some of the 704's now using the LP code. A more extensive modification is planned for the 32,000 word core storage unit. The assembly of input data is, at present, completely separated both logically and physically from the LP main code. The data assembly program is made up of many subroutines to accommodate the different options which are allowed. For example, the data may be loaded on a tape via the peripheral card-to-tape equipment instead of the-card reader. The Data Assembly code contains the necessary subroutines to accept the data either way. The layout is somewhat similar in structure to the main code since we wanted to use the same data and constants regions. Since the Data Assembly code did not fit into the assigned space in high-speed storage, we broke it in half storing the second half on a drum. After the first half 1s executed, the second half is read in from drums overwriting the first half. Control is then returned to the beginning of the code and the second half in executed. This type of sleight of hand is very common where space is short and programs are long. It works best, however, when the program need be executed only once before it is destroyed, as in this case. For the main code, high-speed storage is divided up as follows during the execution of the code:

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 18% of the total text.

Page 1 of 5

THIS DOCUMENT IS AN APPROXIMATE REPRESENTATION OF THE ORIGINAL.

THE STORAGE ALLOCATION OF THE LINEAR PROGRAMMING CODE1

H. A. Judd

International Business Machines Corporation

P-907

July 26, 1956

The RAND Corporation 1700 MAIN ST., SANTA MONICA, CALIFORNIA

SUMMARY

The handling of storage assignment and subroutine interconnections for the 704 linear programming codes are discussed. The available storage of the machine is divided into two main parts -- code and data. Their layouts are fairly independent of one another and the programs include routines for automatic "housekeeping" during loading and running of a Job. Flexibility is provided for systematic modifications in the programs or for machines with various storage facilities. have two reasons for discussing the storage allocation that we used in the coding of the Linear Programming problem. The foremost reason is to increase your understanding of the operation of the LP code, and secondly, I think it is an excellent solution of the storage allocation problem for any big general program. The 704 code for solving the Transportation problem, which I worked on in New York, solves the Transportation problem admirably, but it lacks the tidiness that a good storage layout provides.

To begin with, the LP code was designed for a 704 with 4096 words of magnetic core storage, one drum unit, five tape units, a card reader, a printer, and a punch. Only four tape units are necessary if no off-line printing is desired. The code has already been modified to take advantage of the additional 4096 words of core storage which has been added to some of the 704's now using the LP code. A more extensive modification is planned for the 32,000 word core storage unit.

The assembly of input data is, at present, completely separated both logically and physically from the LP main code. The data assembly program is made up of many subroutines to accommodate the different options which are allowed. For example, the data may be loaded on a tape via the peripheral card-to-tape equipment instead of the-card reader. The Data Assembly code contains the necessary subroutines to accept the data either way. The layout is somewhat similar in structure to the main code since we wanted to use the same data and constants regions. Since the Data Assembly code did not fit into the assigned space in high-speed storage, we broke it in half storing the second half on a drum. After the first half 1s executed, the second half is read in from drums overwriting the first half. Control is then returned to the beginning of the code and the second half in executed. This type of sleight of hand is very

1 Prepared for The RAND Corporation Short Course in Computational Aspects of Linear Programming, Sept. 4 - 13, 1956.

Rand Corporation Page 1 Jul 26, 1956

Page 2 of 5

THE STORAGE ALLOCATION OF THE LINEAR PROGRAMMING CODE

common where space is short and programs are long. It works best, however, when the program need be executed only onc...