AFFORDABLE HIGH-PERFORMANCE COMPUTING
FOR
ENGINEERING EDUCATION
ABSTRACT
With the rapid change in technology and marketplace, engineering students find it difficult to grasp and understand many theoretical concepts and to link them with real-world problems. This problem poses a great challenge for both students and educators. The application of engineering Computer-Aided Instruction (CAI) tools have proven successful in many schools. The demand for better CAI tools has driven engineering educators to investigate new avenues for developing more efficient and cost-effective tools. High-performance computing techniques can provide potentially powerful tools to support the computational requirements of many engineering problems. This paper describes work in progress to explore and assess the feasibility and potential of using high-performance computing to support the development of engineering CAI tools, and to extend their capability to support "Learning by Experimentation." Since the use of supercomputers is almost prohibitive for the majority of schools, we are investigating the utilization of a cluster of workstations connected via a Local Area Network (LAN) as a feasible alternative to the use of supercomputers. We have conducted an experiment to develop a simple CAI tool using high-performance computing and visualization techniques. This paper discusses the main idea and finding of this experiment.
INTRODUCTION
The preparation of engineering graduates to be able to face the challenges of today's rapidly changing technology and marketplace poses a great challenge for both engineering educators and students. Oftentimes, students find it difficult to grasp and understand theoretical concepts and to apply them, using state-of-the-art technologies, to solve real-world problems. Most of the theoretical concepts within engineering courses require that students solve many examples in order to explore and experiment with the concept. Without this experimentation, many students cannot gain insights into the main principles underlying these concepts nor envision how they can be applied to the solution of real-world problems. We can find many subjects within any engineering curricula which must be taught and learned by experimentation.
The higher performance and lower price of computers have made it feasible for engineering schools to use multimedia Computer-Aided Instruction (CAI) software as effective and efficient education tools. Many studies (e.g. [7], [10]) have demonstrated the usefulness of using such tools in engineering courses to enhance the quality of teaching and learning. During the last five years, there has been a surge of activities to develop and use multimedia CAI tools in engineering course curricula. For example, Webster et al. [10] have reported the development of a multimedia CAI tool that uses the networking and multimedia capability of a World-Wide Web (WWW) browser (Netscape) to teach multi-disciplinary aspects of architectural projects and to support collaborative learning. Also, Iskandar et al. [7] have reported the development of multimedia CAI tools to teach physics, calculus, and electromagnetics to engineering students. Many other tools have been developed to support the teaching of design and manufacturing methods, statics and dynamics, structural and fluid mechanics, and electric circuits. Most of these tools are designed to support a mode of teaching that is perceived to be best suited for the domain of interest.
LIMITATION OF CURRENT CAI TOOLS IN ENGINEERING EDUCATION
Learning by experimentation is a necessity for a large class of engineering subjects, especially those involving strict theoretical concepts. To grasp the fundamental principles of these subjects, students should be able to solve many example problems, change various problem parameters, see the impact of these changes on the results, and conduct "what-if" scenarios. Experience shows that experimentation with different problems and solutions in these subjects is a prerequisite for enhancing students' skills and creativity in solving real-world problems. Within any engineering curricula, we can find a multitude of these subjects. For example, in a structural analysis course, students may want to understand the implications of changing the structural and material parameters (e.g. elements stiffness, joints, loading, etc.) of the structure on its structural behavior (e.g. stresses, strains, deflections, etc.). The understanding of these implications is at the core of such courses. However, given a set of few examples, students may not gain an adequate understanding of the impact of various structural and material parameters on the structural behavior, which is an essential requirement for efficient and safe structural designs.
Although today's CAI tools have been successfully used to teach many engineering subjects, most of these tools lack adequate methods and tools to support effective learning by experimentation. These tools typically illustrate a fixed set of examples and educational material, without allowing the students to experiment with the problems or their solutions. To ideally support learning by experimentation, CAI tools should be able to solve the problems and present solutions to the student in (almost) real-time; while allowing the student to conduct "what-if" scenarios by changing various problem parameters, re-solving the problem, and examining the impact of these changes on the final result. Moreover, the system's response to the student should be perceived by the student as "interactive," and should provide efficient tools for user interaction. Achieving this level of real-time response poses many technical challenges. Our work is primarily intended to propose a feasible method that can potentially achieve this goal.
NEED FOR HIGH-PERFORMANCE COMPUTING TO SUPPORT LEARNING BY EXPERIMENTATION
Driven by the need to support learning by experimentation in many engineering courses, educators have been investigating new avenues to extend CAI tools to support students' experimentation with problems and their solutions. An example of such efforts was reported in [2], where a CAI tool has been developed to enable experimentation with and visualization of the dynamic operation of electric circuits, using the Mathematica software package. Other efforts have used the MATLAB package for a similar purpose. Although this approach may be sufficient for a wide range of engineering subjects, it falls short in supporting subjects that require extensive computations such as the aforementioned structural analysis example, especially for large-scale problems that try to simulate real-world scenarios. Solving these problems typically requires tremendous computational resources which potentially leads to increased system's response time, which eventually defeats the purpose of using an interactive CAI tool. For this class of problems, traditional computing techniques may not be sufficient to achieve the required CAI system performance. Therefore, we propose using high-performance computing techniques to support the computational requirements of such educational problems.
High-performance computing has proven successful to support scientific and engineering computation in many areas [9]. However, developing and applying high-performance computing techniques traditionally entails prohibitive costs that deem them unfeasible even for many science and engineering industrial applications. The high cost of supercomputers, such as Cray T3D, IBM SP-2, Convex Exemplar, etc., has been a major impediment to successful application and deployment of high-performance systems. Educational software systems, of course, are not an exception. However, with the recent advances in computing and networking technology and the emergence of the cluster computing concept [1], it is becoming more feasible to develop and deploy high-performance computing systems. In this study, we are exploring the potential of this concept in engineering education to satisfy the aforementioned limitation of current CAI systems.
CLUSTER COMPUTING FOR DEVELOPING REAL-TIME CAI ENGINEERING TOOLS
In the last five years, there has been active research in the parallel computing community to enable a cluster of workstations to serve as a "virtual" supercomputer. The main rationale behind this concept is to utilize the combined computation power of a set of networked workstations to concurrently solve computational intensive problems. This approach provides a viable and cost-effective alternative to the use of multi-million dollar supercomputers. Since workstations and networking infrastructure can be found in the majority of engineering schools, this approach offers a significant opportunity for these schools to use a computational capability, previously impractical, to develop more efficient and cost-effective educational tools. It also provides the opportunity to extend existing tools to tackle more complex problems.
Cluster computing exhibits many differences from traditional supercomputing. A major difference is the (possible) heterogeneity of the connected workstations. Different workstations (from different vendors) typically have different processors and architecture, use different data representation formats, and have different computational power. Also, the performance of the cluster depends to a large extent on the speed and bandwidth of the networking medium used to connect the workstations. The fastest networking medium is an order of magnitude slower than internal interconnect networks used in supercomputers. However, using very high-speed networks, such as High-Performance Parallel Interface (HIPPI) or Asynchronous Transfer Mode (ATM), brings the potential to alleviate the communication bandwidth and speed problems.
The aforementioned differences, among others, between cluster computing architectures and traditional supercomputers pose many technical challenges and require specific considerations in the design and implementation of software systems running on clusters of workstations. Discussion of the implications of these differences on the system development and how these systems can be efficiently designed to run on this environment are beyond the scope of this paper. Interested readers may consult relevant parallel computing literature, such as [1].
Besides its affordability, cluster computing provides many significant advantages for the engineering education community. Most of these advantages stem from the inherent nature of this architecture. First, this architecture may spur the development of high-performance tools to be used in various areas in our curricula wherever substantial computations are required. Second, this architecture can be easily extended and upgraded to support better performance and more complex applications. Third, this architecture can provide a good infrastructure for developing collaborative learning tools that can take advantage of both the connectivity of the workstations and their combined computational power. Finally, the applications can be designed so that they efficiently utilize the cluster capabilities by running tasks on the workstations that best suit their computational requirements. For example, a task that involves three-dimensional (3-D) graphics or user interface functions can be run on an enhanced graphics workstation.
THE EXPERIMENT
Using high-performance computing CAI tools, students will be more able to efficiently explore and experiment with complex concepts and understand their underlying theories in a relatively short time. We have conducted a proof-of-concept experiment to assess the suitability and potential of using a cluster of workstations to develop an educational tool. We have implemented a software that enables students to experiment with the solution of a two-dimensional (2-D) Laplace equation. The Laplace equation is a classical problem that can be found in many engineering courses, and has many engineering applications (e.g. heat conduction). The Laplace equation is a second order partial differential equation that is, generally, difficult to solve analytically, and numerical methods are typically used for its solution. One such method is the finite difference method. Although solving the Laplace equation for small problems may not require extensive computations, solving it for very large problems or problems with complex geometry usually does. Moreover, since our goal is mainly to explore the suitability of using high-performance computing to develop educational software tools, we think that this problem is sufficient for the purpose of our experiment.
The program developed in this experiment aims to help engineering students better understand the concepts of using the Laplace equation to solve engineering problems. Students can specify the problem dimension in 2-D, and the boundary conditions, and get a 3-D rendered image of the solution results. Students can also change the problem parameters and carry out "what if" analysis, and get solutions in almost real-time even for very large problems. Students can also change the visual parameters of the rendered image, and display it in various formats (e.g. wire-frame). They can also manipulate the image in 3-D, and examine it from different viewpoints and orientations.
In this experiment we have used the parallel algorithm presented in [3] to solve Laplace equation using the finite difference method. There are also some programs that have been developed to solve the Laplace equation. Examples of these programs include those presented in [4], [5], and [6]. These programs have provided us with good insights into and the starting point for the implementation of the system.
HARDWARE AND SOFTWARE ENVIRONMENT
The hardware environment in this experiment consists of a cluster of one SGI Onyx RE2 workstation and four IBM RS6000 workstations. The cluster is connected via a standard Ethernet communication medium. The workstations specification is presented in Table 1.
Table 1. Hardware Features of the Workstations in the Cluster
Workstation | Type | CPU | Memory |
SGI | Onyx RE2 | MIPS R4400- 200 MHz | 64 MB |
IBM | RS6000 | POWER - 66 MHz | 32 MB |
The software has been developed using the C++ programming language. The software has used a message passing library, and a 3-D graphics library. The graphics and user interface portions of the program run on the SGI workstation, while the computation tasks run on the IBM workstations.
Many software message-passing libraries have been developed to support cluster computing. The most prominent are the Parallel Virtual Machine (PVM) [1], and the Message-Passing Interface (MPI) libraries. Although MPI is the industry standard for message-passing libraries (first released in 1994), we found PVM to better support our application requirements. The current version of MPI does not support dynamic (i.e. run-time) process spawning, and requires that all tasks be defined and spawned statically before the program can run. The capability to dynamically define the number of processes, and spawn these processes on whatever number of workstations available is very important, especially when the number of workstations in the cluster may change, or the number of spawned processes is to be determined depending on the size of the problem. Future versions of MPI (version 2.0) will support this facility.
The visualization functions in the program have been developed using Open Inventor 3D graphics library [8]. Open Inventor is an object-oriented toolkit based on OpenGL and provides C++ class libraries for developing interactive 3-D and animation applications. Open Inventor provides a set of classes and methods for many 3-D graphics and rendering functions, user interface tools, and animation objects. Open Inventor has been implemented on most existing workstation platforms, which ensures the portability of its developed applications. Although we have not used most of the Open Inventor capabilities in this experiment, Open Inventor has proved to be a powerful tool for future system development and extensions.
OVERVIEW OF PVM
PVM [1], developed at Oak Ridge Research Laboratory, is a software library that enables a cluster of heterogeneous workstations to function as a virtual supercomputer. PVM uses a message-passing paradigm for inter-process communication. It uses TCP/IP and UDP protocols and Remote Procedure Call (RPC) to implement communication functions. PVM has been implemented (or ported) to support most of existing workstations platforms available today. The most recent port was to support PC's running Win32 systems (Windows 95 and Windows NT). With this recent port, cluster computing becomes a much more affordable solution to use high-performance computing techniques, since almost all engineering schools have PC's.
The PVM library provides functions to support the basic services of inter-process communication, including data conversion between different hosts' formats, initialization and termination of processes, and processes communication and synchronization. PVM also supports collective communication functions which enable a group of processes to perform broadcast, scatter, gather, and global reduction operations. Also, PVM supports a multitude of parallel computing models, including Single Process Multiple Data (SPMD) and Multiple Instruction Multiple Data (MIMD) models.
SYSTEM IMPLEMENTATION
The system has two main components: a computation component, and a visualization and user interface component. The system has been implemented by organizing the tasks based on a master-worker model. The master (or control) program, running on the SGI workstation, implements the visualization and user interface component. It is also responsible for data initialization, spawning of worker processes on IBM RS6000 workstations, partitioning and distributing the data among all workers, and collection of results from the workers. The user interface allows the student to explore how different problem parameters can impact the results, and to conduct "what-if" analysis. Actual computations are performed by the spawned worker processes running on IBM RS6000 workstations. The communication between the master and the worker processes, and between the worker processes are implemented using PVM messages. For details about the algorithm implemented in the computation component, please refer to [3].
The visualization component has been implemented using Open Inventor 3D graphics library. For a wide range of engineering problems, a tool for visualizing problem characteristics and solutions is quite useful, and can potentially provide students with deeper understanding of and insights into the subject material. This component transforms the calculated potentials on the 2-D grid into a different color levels and displays the grid in a 3-D coordinate system. This component is implemented as part of the master process.
SYSTEM OPERATION AND SAMPLE OUTPUT
A student starts the program by running the master program on the SGI workstation. The master process gets the problem data from the user. The data includes the dimensions of the 2-D array and the boundary conditions. Then, the master process spawns four worker processes on four IBM RS6000 workstations. All processes run concurrently.
The master process partitions and distributes the data to the worker processes. On receiving a partition of the data, each worker process performs local computation, and communicates the boundary conditions to the neighboring worker processes. When a steady-state condition has been reached, the worker processes communicate their partial results to the master process. The master process organizes the results, and produces a 3-D rendering of the results.
The student can examine the results by manipulating and navigating through the rendered scene. The student can also experiment with the problem by modifying the problem parameters re-running the program, and examining the impact of the new parameters on the results, in almost real-time. The results can also be printed out in a textual format. Fig.1 shows a sample output of the visual display of computation results for a typical example to solve a 2-D Laplace equation. The coloring scheme used in the visualization component needs to be improved in order to produce better images.
CONCLUSION AND FUTURE DIRECTIONS
Providing engineering students with a tool that will enable them to experiment with the concepts is a key factor to improving the quality of the education process. Learning by experimentation has the potential to provide the students with insights into and a better understanding of fundamental theoretical concepts. Our study has demonstrated the feasibility and potential of using high-performance computing tools to support learning by experimentation for concepts that require the capability of solving problems in real-time, and conducting "what-if" analysis. Also, the use of cluster computing has proved to provide an affordable and viable alternative to the use of high-performance computing techniques to develop educational software. We see this approach as a significant opportunity to improve the quality of current CAI tools. It also promises to extend the scope of such tools so that they can provide new teaching opportunities, especially for the teaching of theoretical concepts and their applications to real-world problems.
Fig.1 A Sample Output of the Visualization Component for a Typical Problem
The developed system is still at the experimental stage, and lacks many desired features. To be an effective education tool, the system needs many improvements. The visualization component needs to be improved to produce better images. It also needs to be extended to display more information about the solution (e.g. contour surfaces, changes in the potential along arbitrary sections, etc.) The scope of the system needs to be extended to incorporate real practical applications of the Laplace equation in various engineering domains. Also, the system needs to be used in actual classrooms, and a formal evaluation process needs to be conducted to assess its effectiveness and benefits with respect to students' understanding and ease of use.
The major goal to be pursued in future work is to apply high-performance computing techniques, based on a cluster architecture and model, to develop CAI tools in various engineering domains. This work will seek to integrate previous CAI multimedia tools and parallel computing techniques into a coherent approach to tackle more complex and challenging engineering education subjects. However, developing educational software tools that use PVM and run on a cluster of workstations may not be as easy as using multimedia authoring packages to develop such tools. The development of high-performance tools requires developers to invent or use efficient parallel algorithms to solve the problems and to be able to write efficient parallel programs. The required knowledge and experience to do so may be the major problem of developing such tools. However, by developing high-level CAI authoring tools, on top of PVM, that implement high-level functions for defining, partitioning, and distributing data and tasks, and handling communication between these tasks, most of this problem can be alleviated. By integrating the multimedia and visualization capabilities of existing CAI tools with the high-performance of workstations clusters, the scope and capabilities of engineering education software can be drastically improved. Also, recent advances in user interface techniques enable the development of more intuitive and "immersive" interfaces for these educational systems by employing virtual environments tools and techniques. Educational virtual environments can also exploit the computational power provided by the cluster of workstations model.
Cluster computing can also provide a new opportunity for collaborative learning. Tools can be developed to run on a cluster of workstations in which a group of students sitting at a set of distributed workstations can share ideas, and cooperate to solve common problems. We have conducted a pilot experiment to build a simple X Windows-based program on top of PVM that can enable distributed users to cooperate in editing a single drawing collaboratively. The experiment result was promising.
The increasing performance and low price of PC's, with the recent port of PVM to Win32 platforms, will also enable high-performance educational tools to be developed on clusters of PC's. The computation and graphics capabilities of PC's clusters provide a significant opportunity to develop engineering educational tools with a scope, level of performance, visualization aids, and user interface, that previously was unaffordable and impractical.
ACKNOWLEDGMENT
This work has been supported by the Engineering Graphics' Thomas French Fellowship program, and has used the facilities of the Construction Laboratory for Automation and System Simulation (CLASS) at The Ohio State University.
REFERENCES
[1] Al-Geist, and Adam Bergulin, "PVM Users Manual," Oak Ridge Research Laboratory, 1994.
[2] Doering, E., "Scientific Visualization in the Circuits Curriculum: Enhancing Student Insight," Proceedings of the ASEE/IEEE Frontiers in Education Conference, http://fairway.ecn.purdue.edu/fre/asee/fie95/2c6/2c64/2c64.html, 1995.
[3] Fox, G., Johnson, M., Lyzeng, G., Otto, S., Salmon, J., and Walker, D., "Solving Problems on Concurrent Processors," Prentice Hall, Englewood Cliffs, New Jersey, 1988.
[4] http://www.tc.cornel.edu/~xshen/Templates/Laplace/
[5] http://www.physics.hmc.edu/courses/ph51/laplace.html
[6] http://www.csc.fi/programming/examples/pvm/node3.html
[7] Iskander, M. F., Catten, J., Jones, A., Jameson, R., and Balcells, A., "Interactive Multimedia Lessons for Education," Proceedings of the ASEE/IEEE Frontiers in Education Conference, http://fairway.ecn.purdue.edu/fre/asee/fie95/2c6/2c64/2c64.html, 1995.
[8] Open Inventor Architecture Group, "Open Inventor C++ Reference Manual," Addison-Wesley Publishing Company, 1994.
[9] Power, H., Brebbia, C.A., "High-Performance Computing in Engineering," Volume I: Introduction and Algorithms, Computational Mechanics Publications, Southampton Boston, 1995.
[10] Webster, A., Friedman, M., and Rosenbaum, P., "Teaching Engineering for Architectural Projects: A Networked Multimedia Approach," Proceedings of the ASEE/IEEE Frontiers in Education Conference, http://fairway.ecn.purdue.edu/fre/asee/fie95/2c6/2c64/2c64.html, 1995.