Graham Jones is back with part 2 of his look back on 40 years in the industry. This is an excellent look at the journey he has made, how things have changed and I am looking forward to the rest of this series.
In part 1 I described my first real success in computing and how that helped to change the attitude in the design department where I worked. The knock-on effect of that was that it attracted the attention of one of the central research organizations in the company. The outcome was that someone was seconded from that research department to share the collective knowledge/experience and to further progress the use of computers in process design. That person eventually became a close personal friend and still is today. He was at my wedding and is godfather to my older son. What I didn’t realize was that he was also on a scouting mission to put together a special team of 4 (including himself) from around the company. The team’s goal was to further the use computing in process design right across the company, initially in the UK and eventually overseas.
Ok, you have probably guessed by now. I was selected as one of the other 3. The other 2 came from other divisions of the company dealing with completely different processes, thereby giving a spectrum of needs and experience. The choices were also politically expedient! One cannot avoid the politics. The outcome was that I was to go on secondment for 2 years (eventually it was 3 years – it is always longer than planned!) to work at the central research organization. This was to be one of the most interesting and challenging parts of my career. It was also one of the most important personally since during this time I met and married my wife. I soon realized that the people that were working there were quite exceptional. I wondered what I was doing in such exalted company.
Our initial task was to assess the current state of computing in process engineering across the company in the UK. It was hardly surprising that the 3 team members from the operating divisions were from the 3 most active. The assessment was used to formulate a plan whereby the “best” applications would be extensively tested and polished. Those areas where applications were poor or non-existent would be the subject of new application development. Rather than risk boring or confusing you with more about process engineering let’s think in math terms. The task is to numerically solve a very large number (possibly several thousand) of ill-conditioned (ie. tough to solve) simultaneous equations. This tested all of my math skills (the ones from University that I was convinced that I would never use) to their limits and sometimes beyond. In many cases in those days it required major simplifying assumptions. Today’s computing power and new equation solving techniques has totally changed the picture. After the initial assessment I was asked to focus on the design of distillation columns. Distillation columns are one of the most common and important parts of many process plants. Most of us have seen the tall, thin towers as we pass an oil refinery or petrochemical complex. Chances are they are distillation columns.
As an aside I would like to share an anecdote about a heat exchanger design program which was being used on a regular basis by one of the more “sophisticated” divisions when it came to computing. Our repeated tests failed to provide results that either made sense or tallied with the actual equipment that was being used. In the end we spoke to the process engineers using the program and this is the answer that we got, “we discovered a long time ago that it gives answers which are about 100% too big. So we simply half the answer!”. Now there’s a highly scientific approach for you and actually rather scary. We kept digging and found the bug in the program responsible for the problem and fixed it. The problem then was “would people carry on halving the correct answer?”, which might have been even more disastrous. Remember, “people are usually the problem in the end”. You will hear that a few times over the next few episodes.
The language of choice was ANSI Fortran 66. In order to stick to the ANSI standard (a conscious decision to help portability across machines/compilers) we faced a major language restriction, the use of “numeric if” statements. What is a “numeric if” statement? It is a statement that decides the direction of program flow based upon whether a tested expression is either –ve, zero or +ve. Today we are more familiar with the idea of using “logical if” statements, ie. if X > Y AND Z > 0 then….Some Fortran compilers in those days supported some types of “logical if” but it was non-standard. Was this a royal pain from a programming standpoint? You bet! But as you will eventually see in a later episode it paid its dividends.
Picture this! We were doing software development on an IBM 360 (eventually 370) which was 10 miles away and the program (on punched cards of course) was transported to the computer centre and the line printer output returned by a scheduled car service. On a good day we got two “bites at the cherry” and most days only one! Also, bear in mind that the computer operator may decide to drop and creatively re-arrange the cards or the card reader would “eat” a few effectively resulting in zero runs on some days. I wonder if anyone today could possibly have the patience to persevere under those conditions? On top of this the commercial guys had decided that we were only worthy of a whopping 100K partition of 32 bit words to run our programs in. As the size and complexity of our programs grew we had to resort to using “overlays”. This is a run time technique whereby the calling structure of the program is described to the OS so that the minimum amount of code is in memory at any time. The complication was that it imposed restrictions on the ability to call code when and where you wished resulting in duplication of some code. At this rate I was going to have grey hair before we finished.
“There had to be a better way!”. In part 3 you will see how things changed, get more about the challenges of both Fortran and writing software to design distillation columns at that time and the solutions that I developed.
Graham Jones is the president of VANTUG going on 5 years now. He is passionate about the user group community in Canada and offers assistance to both newly formed user groups as well as those that have been in operation for years. He is also organized Vancouver Techfest and is the founder of IT Volunteering two ambitious projects that change both the IT community and the public community for the positive.