I have sent this query as an email to QNX and have posted in on ww.osnews.org but have had no replies. Perhaps someone in this community has some information. Thanks!
I am interested in the possibility of using QNX as a platform for heavy technical computing.
The oil industry uses many compute and graphics intensive applications in analyzing its large (multi-gigabyte) data volumes. The processing and visualization applications that are used have been, and are still written for high-end UNIX systems.
Recently these applications have begun to be ported to Linux machines using high-end PC hardware.
Examples of these applications are processing of volumetric seismic wavefield data for the purpose of imaging in three dimensions the earth’s subsurface, interactive 3D interpretation of this image data, construction of numerical models of the subsurface, including geologic features and assignment of fluid related properties, and simulation of oil field production based on these models. Besides our internally developed codes, a large suite of software vendors address these computing needs. Some of these are Schlumberger, Landmark Graphics, Paradigm Geophysical, Roxar, ESRI. A perusal of these companies web pages may serve to give some idea of the nature of the applications that are in use in the oil industry.
I am interested to find out if QNX is a good fit to this sort of environment. Has it been so used, if not in the oil industry, then perhaps in other scientific large scale computing/visualization environments? Of particular interest is whether QNX is used in cluster computing or grid computing environments. The oil field simulation calculations and sometimes visualization are of such magnitude and complexity that clusters computing is very important. Specifically, our Linux environment consists of high end PCs connected by Infiniband high-speed switches.
A move to 64-bit LINUX applications (UNIX apps have been 64 bit for several years) is underway now. Does QNX support 64-bit computing?
Here are some typical issues that are faced in developing Linux port of our UNIX applications:
- high speed switched cluster computing application development:
We have to make sure all drivers for hardware operate on the operating system.
We have to recompile all of our Fortran90 and C code on the operating system using an available fortran and c compiler that optimizes well for the hardware and operating system being used (e.g., dual opteron compute server from IBM, HP or DELL).
We have to be able to debug our code in case it does not run the same as on other systems; we do this using the Etnus Totalview debugger. Totalview must be able to work on the new operating system with the compiler being used.
MPI libraries have to be available for our parallel processing capabilities.
We have to have access to scripting languages available within things like Korn and C shells.
We need to be able to run awk scripts.
We donâ€™t have the luxury of putting many people on the porting effort. It needs to go smoothly from beginning to end.
- desktop technical Pcworkstation running 3D interactive visualization:
Similar issues as above, but also have the issue of getting the vendor to port their application to the operating system and continue supporting it.
Graphics cards will need to work on the operating system (e.g., Nvidia Quadro FX 3000)
VMWARE OS emulation software will need to be ported to allow us to run simultaneous the Windows operating system with the other operating system.
Part of the motivation for moving to Linux in the cluster area was that none of the traditional UNIX vendors had a complete solution that would run on the chosen hardware (machines and switches network).
Would the QNX environment be able to address these issues effectively, and in fact more effectively than Linux ? A survey of the capabilities outlined on your web site and in the white papers linked there seems to indicate that it should be at least as easy to develop in QNX as in Linux. One would expect that a QNX based cluster might be more reliable and run faster than a Linux based cluster.
We are attracted to and admire the QNX design because of its pursuit of the principles of layering and modularization that characterize UNIX to their logical conclusion in kernel and total o/s design. In addition, the explicit focus on communication between executing program elements seems to make computing, and especially distributed computing more understandable, and acts as a source of ideas.
In the long term, it seems inevitable the QNX design principles should prevail. Would one expect a radical enough improvement in the whole development cycle that a port of our applications to QNX would be a desirable goal to pursue?
I would be interested to receive any comments and suggestions you may have in regard to this query. Many thanks for your attention to my queries!