There has been frequent attention placed on Linux in the press, where the focus is mostly related to the networking capabilities of Linux and its use of web servers or email/file/printing servers. However, Linux is indeed very popular in universities and national Laboratories where scientific research is conducted. The success of Linux as an operating system as well as a user environment, is driven by the collaborative work of people around the world, which includes its improving quality and usability. The large amount of applications that support Linux (see SAL, Scientific Applications on Linux as an example) also contribute significantly to its usability. However, I think there are some issues that remain to be coped with before Linux can really become the choice of high performance platforms. Among them are performance tuning and software packaging.
Many scientists/engineers need computational power, which is related not only to hardware but also to software. From the user's perspective, the performance gained from software is mainly associated with: (unless you do programming in low level)
A compiler that could generate optimized machine codes that perform fast operations on target platforms.
Freely available software such as GNU compilers were designed to put portability ahead of optimization for specific hardware architectures. There are some commercial compilers available for Linux that offer platform specific optimizations. Some of them could even compile the code to take the advantage of Linux SMP or Linux clusters (like Beowulf).
As Linux moves into the mainstream of advanced computing, highly optimized
compilers are in demand to compete with other operating systems.
Many UNIX vendors provide an optimized basic numerical/mathematical library for their platforms. This type of library usually contains BLAS, LINPACK, EISPACK, LAPACK, FFT and more, which are optimized for its target platforms (single CPU or SMP) to achieve the best possible performance. Though there are some general math libraries like those listed in http://SAL.KachinaTech.COM/B/0/ for Linux, there is no highly optimized version yet available for Linux platforms as far as I know. The lack of good basic scientific libraries has forced Linux users to compile the source code (usually from Netlib) themself for their need, and the resulting executables do not take full advantage of the hardware performacne in most cases. Note, there is indeed some scattered work of optimized BLAS on Linux, Intel, or Alpha (see http://www.KachinaTech.COM/~hjjou/scilib/opt_blas.html). This work really needs some centralized efforts to get them organized.
The packaging issue has been addressed in the Linux community mostly by Red Hat and Debian distributions, but they haven't solved all the packaging problems and currently only cover a fairly small amount of scientific software in their distributions. (e.g., most Netlib/Linux users still have to compile the source code by themselves.) Wouldn't it be good to have several freely available packaged scientific software (like the plan proposed in http://SAL.KachinaTech.COM/sal-package.html)? The problems are the many varieties of scientific software and the source code structures involved in different software. This makes it very difficult and tedious to get the codes converted to the format we would like. It is absolutely important that Linux Standard Base (LSB) will play a crucial role here toward the success of packaging scientific software on Linux. Again, a centralized effort will be necessary to get this done, efficiently and correctly.
A while ago, I proposed a plan of constructing (involves organizing/optimizing/packaging) a free version of an optimized scientific library for Linux platforms. A preliminary version is at http://www.KachinaTech.COM/~hjjou/scilib/ and we welcome anyone who is interested to send your comments and questions to SAL@KachinaTech.COM.