This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
Matlab is a numerical computing environment that provides abstractness in solving mathematical issues. Shockwaves are inherently suitable for parallel implementation and mostly has to be done using a low level language. This requires high skills in programming as well as and it is less portable between different hardware and hard to modify. Parallel programming has to be done based on the hardware where it is used. But Parallel Matlab toolkit provides abstract way of programming in parallel that is not hardware dependant, but configurable. This is an attempt to solve shockwaves problems in parallel Matlab and study the effectiveness of it achieving abstractness and efficiency at the same time, two contradicting paradigms in software engineering.
Objective is Find out the level of parallelism available in Matlab with regard to shock-wave problem with higher number of cores/nodes. Shockwave simulation will be implemented for a one shape. Analysis will be done how the implementation behaves in different environments.
Work is carried out so far to find out ways of solving shockwaves problem. Many attempts to solve shockwaves have been discussed in past. Also investigation is being carried out on doing the simulation. According to investigations the approach may differ and some other Plug-in may be used within Matlab. Because, some of the available APIs may be more suitable for simulation than Matlab.
Shock-wave simulation has numerous application contexts both in research and in industry. Shock-waves are modeled as Euler equation and can be expressed as Partial Differential Equations (PDE). Shock-waves problems are solved by scientists, researchers, whose primary concern is not coding. Meanwhile the nature of the problem requires parallel programming in order to improve the performance. Hence abstractness can help them to focus more on the research on the shockwaves rather than parallel programming. The practical significance of the problem has been the motivation for this project.
These collectively require a framework while retaining the high-level abstractions. MATLAB is a numerical computing environment and fourth generation programming language which could offer such a high level of abstractions. It is very powerful in mathematical computation, algorithm development and graphical simulation. While offering these abstractions, MATLAB enables parallel implementation for different parallel contexts, such as cluster and multi-core systems.
Parallel implementation of shock-wave problem. According to the initial work, a uni-processor implementation could not be found.
Initial idea was to use Matlab for GUI for data capturing and rendering. However according to the initial investigation, this may be architecture so that some other API may be used for GUI. And that is supported by Matlab.
Find out the level of parallelism available in Matlab with regard to shock-wave problem with higher number of cores/nodes. Problem occurred in this area is measuring the successfulness in different architectures.
Shockwaves are generated by an abrupt change in the discontinuous change in the medium [WWW01]. A large-amplitude compression wave, as that produced by an explosion or by supersonic motion of a body in a medium. [WWW02] . This can be further explained by an example. Consider a scenario an object moves through a fluid.
When object moves slower than the speed of the sound, sound waves are moving ahead of the object accumulated in front of the object.
When object moves faster than the speed of the sound, sound waves are moving behind the object. This creates a rapid change in the pressure, temperature hence shockwaves are generated.
Matlab is one of the leading programming languages for mathematical computation. Also widely used in many areas for algorithm development. Matlab provides very high level of abstractness when compared to other scientific languages. Apart from that Matlab provides means to implement these algorithms run in parallel. Again in very abstract way, where implementation does not depend on the underlying architecture, where as in normal parallel programming world all the implementation is based on a specific architectures.
Matlab provides both Parallel Computing Toolbox™ and Distributed Computing Server™. Parallel computing toolbox provides facilities for implementing parallel programs and run them on multicore computers and computer clusters. Distributed computing server lets the users to use other remote machines and run Matlab workers there. This does not require detailed code change. [WWW05]
This nature of shockwave model required large amount of calculations and hence need performance improvement. Also this is suitable for parallel implementation. Problem arises here. People who do these experiments are fluid dynamists, aeronautical engineers - those do not necessarily have good programming skills. Also their main focus is not writing programs but engaged in solving some other practical problem. This appeals for good framework that helps fluid dynamists to do their job, without being stuck in the programming. Having said that the users are not programmers that do not mean that programming skills they acquire is nil. In some cases they need some modifications to existing implementations. But most of the programs are written in low level languages like Fortran, CUDA. It is extremely difficult for them to modify a program written in low level program. Especially ones written to suit for one hardware architecture, porting them to another architecture consumes considerable amount of time. This is discussed in detailed in a talk done by Ed Hall [WWW06].
Hence objective is to implement framework for solving shockwaves problem using Matlab and its successfulness in terms how much abstraction can be obtained.
Parallel implementation of any program mainly depends on the architecture it is run. That includes multi core processors, and processors. There are many implementations of shock waves problem as well as similar implementations for fluid flow.
Several approaches have been discussed in solving Euler equation. Parallel implementation of Eulers equation is discussed in Hagen et al (2006). This is an attempt to implement Euler's equation to run on Graphic cards. It simulates dynamics of ideal gases. The schemes use an explicit time discretisation, idea of having to updating each cell independent of others. This also provides new method of implementing current high-resolution finite-volume schemes in parallel. Like many of the attempts, this has been an attempt to bring performance by using parallel implementation of GPU. If this has to be run in a different architecture, whole program has to be re-written to fit into other architectures and also writing programs on CUDA may not be an easy to work with language.
However the design of parallel implementation can be used in implementation with Matlab. As this has been a successful research same approach can be used for Matlab implementation. Especially the parts that can be parallelize and how work can be broken into parallelizable sub tasks can be identified from this paper.
There is another approach discussed on solving huperbolic equations, where Euler's equation belong. Gottlieab et al (1998) has studied further explanation on total variation diminishing Runge-Kutta time discretization. This paper justifies the use of Total variation diminishing Runge Kutta schemes in solving hyperbolic problems. It proves that four stage fourth order Runge-Kutta methods cannot be Total Variation Diminishing too. This approach is also used in the above implementation by Hagen et al (2006) of Eulers on Graphical processing unit.
This paper discuses the shock wave interaction with a cylinder a successful method of caturing shock waves. This also discusses about solving the problem using Total Variation diminishing. This is a solution for the Navier-Strokes equation that will be a future implementation for Parallel Matlab provided the successfulness of implementation of Euler's equation. Since Navier-Stroke is considered as mother of all including Euler's equation.
Though this is not a parallel implementation of solutions, it provides enough proof on possibility of solving and simulating multi-dimensional blast propagation with Gas Dynamics Toolbox in Matlab. This again uses finite volume method and has proven to be a reliable implementation.
Literature review has been carried out to analyze existing solutions for solving Shockwave problems. There has been number of commercial products available that was not been investigated due to cost of the products. There were number of attempts to solve shockwave problem in GPU cards. . Also there were other similar problems solved using Matlab. 
There may be changes to the initial plan based on the initial investigations.
Investigations are being carried out to decide whether to use Matlab or other API for doing Simulation. Java3D is an option that was considered. As mentioned in Wirabhuana, et al both Java and Matlab has limitations in each for simulations. Java3D has better capabilities on user interaction capturing, but it is not significant in shock-wave simulations. Also according to Wirabhuana, et al, complications of using many toolkits also has to be solved while running the real simulation.