Software
These pages document the software installed in computer scinece software repository
at the university of Houston. The repository contains a number of software
libraries which can be used in many different applications on a variety of computer
platforms existing in the department. There are several important reasons in taking
advantage of these libraries when writing an application code. These reasons include:
Numerical linear algebra (NLA), and in particular the solution of systems of linear equations, linear least squares problems, and eigenvalue problems, is essential and often the most computationally intensive part in many scientific computations. A hierarchically structured programming approach in which the higher-level operations are constructed using sets of low-level kernels, has been the method of choice for most of the available numerical linear algebra packages. The repetitive structure of most of the NLA procedures has been the initial motivation for this approach and proven functionality over the years has provided additional stimulus for development of hierarchically organized high-performance linear algebra routines. The following is a list of installed linear algebra libraries: Message-passing programming is essential to distributed memory parallel systems. Communication libraries provide pre-built functionalities of inter-process communication (IPC) within a node or across the network. Most non-propriatary communication libraries are built on top of UNIX RPC (remote procedure call) that access low level TCP and UDP layers of services. A fast Fourier transform (FFT) is an efficient algorithm to compute the discrete Fourier transform (DFT) and its inverse. There are many distinct FFT algorithms involving a wide range of mathematics, from simple complex-number arithmetic to group theory and number theory In general, partial differential equations are much more difficult to solve analytically than are ordinary differential equations. They may sometimes be solved using a Bäcklund transformation, characteristics, Green's function, integral transform, Lax pair, separation of variables, or--when all else fails (which it frequently does)--numerical methods such as finite differences or finite elements. One of the best tools on the market for Parallel Solutions of Partial Differential Equations (PDE) is the Portable Extensible Toolkit for Scientific computation, or PETSc. The scientific calculations in this library correspond to those which can be expressed in terms of PDE's representing laws of physics. The PETSc library was developed by the Mathematical and Computational Science Division at Argonne National Laboratories. The IMSL Numerical Libraries have been the cornerstone of high-performance and deep computing as well as predictive analytics applications in science, technical and business environments for well over three decades. These embeddable mathematical and statistical algorithms, written in C, C#, Java, and Fortran, are used in a broad range of applications -- from programs that help airplanes fly to allowing people to predict the weather, to those that enable innovative ways to study the human genome as well as applications that predict stock market behavior and provide risk management and portfolio optimization. The IMSL Libraries are regarded as the most sophisticated, flexible, scalable and highly accessible technology available for numerical analysis in the most important mainstream programming environments in use today.
For More information, please Visit IMSL Libraries Website
PV-WAVE is an array oriented fourth-generation programming language used to build and deploy VDA applications.
For more information about the PV - Family of products please visit PV-Waves's Website
There are several extensive serial and parallel scientific
software libraries such as BLAS, LAPACK, and PETSci that are installed on variety
of computing platforms. In addition, there are several smaller specialized libraries
available that contain routines for specific problems such as Fast Fourier Transforms
and Random Number Generators. Therefore, whatever platform you are running your code
on there is probably a library installed or one can be installed that contains the
routine you need.
Many of these software libraries have been in use and under
development for several decades now. Over this time, many errors in the routines have
been fixed and more powerful, new, and specialized routines have been added. Thus, not
only are the number of routines available growing but the existing ones keep getting better.
Today's numerical libraries are extremely
well written making them efficient on two levels: good single processor design
(especially cache use) and effective use of multiple processors. Idle processors and
interprocessor communication is kept to a minimum, work is distributed as evenly as possible
among the processors (load balance), and communication is often occurring simultaneously with
calculations (latency hiding). If you were to write your own routine, it probably would
not perform as well.
At one time, parallel numerical library routines were
limited to only linear algebra calculations. Now, you can find routines that perform quite
a number of diverse mathematical tasks. Chances are if there is a numerical task that you
need in your program, there is a library routine available to do it.
Many of the libraries that have been around long enough
have well accepted or standardized application programming interface (API) adopted by
many software developers includeing the highly optimized libraries developed by the
hardware vendors. Adherence to these standards will, in many cases, ensure portable
performance of your code. Software by Category
Linear Algebra
Communication Libraries
Fast Fourier Transforms
Numerical Solution of PDEs
Bioinformatics
IMSL Numerical Libraries
PV-Wave
