PDP: A paradigm shift for NASA Space Shuttle Flight Design
During my time working on the Space Shuttle I developed at NASA/Johnson Space Center a Parallel Distributed Processing (PDP) package to distribute tasks such as Space Shuttle trajectory simulations across the Unix workstation network we had at Rockwell Space Operations. The basic idea is very simple (as many people have told me): find an idle workstation somewhere on the network and run a command there instead of on the user’s workstation.
Although it sounds straightforward, there are many issues and problems to be dealt with. Some examples:
- What exactly is an “idle” workstation?
- How to keep track of when a remote (distributed) task has finished.
- What do you do if a remote workstation crashes? How can you tell?
- How do you handle intermittent network connectivity problems?
- What do you do if someone logs onto a previously-idle workstation that you’ve distributed a task to?
The package was developed using Perl and C: Perl for the main tasks, and C for a daemon process and to use remote procedure calls (RPC). The project evolved from an idea to a simple script, then to a more sophisticated script, then to a fully-functional prototype. The estimated cost savings NASA realized from using the PDP software is about $40+ million dollars.
NASA apparently thought the idea, and the increased efficiency, was worthwhile and awarded me a NASA New Technology Award. I also received a Technology Utilization Award from Rockwell. The IEEE also invited me to make a presentation at a local chapter meeting.
Click the left button below to read the slides for the IEEE presentation. This presentation also contains results (using the prototype) from a project for Space Shuttle Flight Software upgrades where PDP reduced the compute time required from 378 days to under 12. A write-up summarizing the project was also published in NASA Technology Review magazine–click on the right button to read the article.