Linux for Computational Science Software Development

[Linux Penguin Logo]

Maintained by David E. Bernholdt, <bernholdtde@ornl.gov>

$Date: 2001/03/21 16:16:33 $


Disclaimer: This information is provided as-is. I make absolutely no guarantees about its accuracy or suitablility.

Note: In the Linux world, URLs change frequently and I don't have enough time to keep up with all of the changes.  If you find a link on this page that is not working, please accept my apologies and try checking one of the myriad search engines available these days using the title I give. Thanks.

Contents


Background

My foray into Linux originally began in about 1995.  I started traveling a lot more for work, and also wanted to be able to telecommute more easily.  I am not a big fan of Windows, and am very comfortable in a unix environment -- especially for software development.  So I installed Linux on my laptop and my home desktop machine, and used both installations extensively.  The need to consolidate a web service from several different (shared) servers to a single box I could personally afford lead to another Linux installation.  And most recently, when I moved to Oak Ridge National Laboratory, I decided to go with a Linux system as my primary desktop as well as putting it on my new laptop.

I think Linux, together with the Open Source concept and the general ethos of freely available software has been a tremendous boon to the computing world.  The quality and usability of the majority of free software I have used rivals anything I've encountered from commercial vendors.

There's nothing terribly novel about my installations, but since I have from time to time turned to the 'net for help with some problem/question I was having and found people quite helpful, I thought I might make a small contribution to the public good by providing pointers to info I've found helpful and some notes on things that weren't well documented.  I try to catalog the major hardware on which I'm running Linux because when I'm purchasing something, it gives me a lot more confident if I can look on the 'net and that others are already using it under Linux. As Linux evolves and improves, this is less and less an issue, but I still check. I hope you find some of it useful.



Choice of Linux Distributions

I started out with Slackware, 3.1 and it served me well for several years.  I never updated my installations, so when I began to realize that my setup was becoming too old to take advantage of some of the newest software, installing from scratch was clearly the way to go (with an additional push from the fact that I was replacing disk drives on both my laptop and home machines). This time around it seemed pretty clear that RedHat was among the most widely used and mature distributions.  In addition, it was being used by others at NPAC and our Systems Group was considering formal support for it within the Center.

So I installed RedHat 6.0 and was very impressed by how much easier it was to install and configure than my first Linux installation in 1996.  In fact, having just installed Windows98 on my dekstop, that RedHat 6.0 was very nearly as easy to install and configure!

Since then, I've been making more of an effort to keep my installations reasonably current, and I've added a number of new machines to the stable.  At the moment, RedHat 7.2 is the flavor of the day.


Hardware Environment(s)

I'm running Linux on a bunch of machines these days...

Dell Precision 530 (work desktop)

Hardware highlights... Even though I planned to re-install this machine with RH7.2 as soon as I got it, I decided to order the pre-loaded Linux version to show Dell that their customers are interested. It was probably a mistake. The configurations available with Linux were much more constrained than those available with Windows, even though I'm sure that in almost all cases, the hardware would have worked. For example: I had to order the tape drive separately and install it myself; they wouldn't ship a CD-RW/DVD combo unit with the Linux version; they wouldn't ship a two-headed video display card (something I've been interested in experimenting with). Oh well, I've got it and it works, and I'm happy with the machine (though still annoyed at Dell). I did install RH 7.2 as soon as I got it. Then I re-installed Dell's RPMs for the video card.

Dell Precision 330 (group file server)

Hardware highlights... Being unfamiliar with setting up RAIDs, we first went through everything in Windows to make sure the hardware was all functioning. Then we did it in Linux. Everything worked fine. Well, almost everything. We had a lot of trouble getting the changer function of the DAT drive to be recognized by the SCSI subsystem. After much wailing, email with Dell engineers, and 'net research, we determined that the PERC RAID controller was intended only for use with disks and it couldn't deal with a second logical device on the same physical unit. So we purchased and installed a separate SCSI card for the tape drive. We finally got this to work, but only by forcibly adding the changer to the SCSI configuration -- it is not picked up by the boot-time probe of the SCSI bus. But it does work. The solo 36 GB drive came from a colleague who had inadvertently ordered the drive with the wrong connector and found it easier to donate it to us than go through ours and the vendor's merchanside return procedures. We plugged it into the PowerVault, configured it as a separate RAID group (the PERC controller can handle 2, I believe), and it just worked. Thanks Bill!

IBM ThinkPad 570E (work laptop)

Hardware highlights... The video card was recognized by the RedHat 6.2 installer, but there were problems with the resulting setup.  Fortunately, Xconfigurator got it working right away. The modem is one that Lucent has released a (binary-only) Linux driver for.  I downloaded and installed it, and it seems to work fine, though I have not tested it extensively.  The sound card is supported by ALSA, which is pretty easy to configure and install.  The toughest thing to figure out is what to add to your /etc/conf.modules.  This is what I used:

# ALSA native device support
alias char-major-116 snd
options snd snd_major=116 snd_cards_limit=1
alias snd-card-0 snd-card-cs461x

# OSS/Free setup
alias char-major-14 soundcore
alias sound-slot-0 snd-card-0
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss

One thing I dislike about RedHat is that they've broken the simple and very effective "schemes" system in the pcmcia-cs package.  Strangely, I have yet to find anything on the web that deals with how to effectively use RedHat's normal mechanisms to deal with a highly network-mobile system.  So I quickly went for the solution of installing the standard pcmcia-cs distribution to replace RedHat's version.  It so happens that the easiest way to get the drivers for the wireless LAN card was also to get the latest pcmcia-cs distribution, adding to the motivation.  Initially I had lots of problems getting things to work properly with different schemes -- if I even tried to ping the IP address I had assigned to the interface, it would not work.  After some experimentation, it seems like any IP address you use in a network scheme must appear in /etc/hosts.  I don't yet understand why this should be, but from practical experience it works.  These days I'm working with some packages that expect to be able to use rsh, and certain things have to be reconfigured if the hosts IP or name changes. To try to combat this, I've assigned my usual work IP address and name to the dummy0 device (following advice in the help pages for that section of Linuxconf -- advice I wish was expanded upon somewhere).  This seems to help in some ways, but is not the whole answer.  I'm still working on it.  Incidentally, the Cisco Aironet 340 wireless card is apparently the same as the Aironet 4800B, which is what you may see some of the drivers & related web pages refer to.

I have not tried to get the IrDA or USB ports working yet. I also need to understand what I can and can't do with APM on this box.  Other web pages on the 570 and other ThinkPads suggest that  I should probably tweak the kernel configuration a bit and recompile.  For the time being I have avoided any possible problems by simply not even trying to suspend or hibernate the system -- I just shut it down and boot it up as required.  One of these days...

Dell Precision 420 (home desktop)

Hardware highlights... This pretty much "just worked" when I originally installed RH6.2, and when I installed RH 7.2 (clean install, not upgrade), it was even smoother. One interesting feature is that the video card identifies itself as an nVidia Riva TnT2 rather than a Diamond Viper. I haven't actually cracked the case to look at the card, but I'm inclined to think that Dell shipped this machine with the wrong card (their own configuration documents list the Viper) and I never noticed. The nVidia driver seems to work fine, so I guess I don't care too much.

Old No-Name Machine (csir.org server)

Hardware highlights... This is a machine NPAC had "lying around" (it was too old and feeble for anyone to really want it) which I setup as the server for a small web information service I run.  I wiped the previous Windows NT installation and installed RedHat 6.2 as the sole operating system.  It all just works, and I don't have to worry about it much.  When I left Syracuse, I purchased it and brought it with me.

Toshiba Tecra 500CDT (home laptop)

Hardware highlights... The original  hard disk on this machine was only 1.38 GB, too small to partition for both Windows and Linux and have any room to do work in either.  So I bought a second disk and did separate installations.  Physically swapping drives is a bit more bother than dual boot, but the extra space has been worth it.  When I upgraded to 4 GB disks, I maintained the two disk setup.

Slackware 3.0 successfully installed from the CD-ROM accompanying the aforementioned book. But as I already knew, Slackware 3.1 was required to properly support many features of the 500 CDT (XFree86 3.2 for the display, and a current version of PCMCIA support being the main things). The 3.0 installation with the addition of pcmcia 2.9, allowed me to get the ethernet going well enough to allow downloading the Slackware 3.1 distribution via ethernet directly onto my hard disk.

I couldn't get the built-in modem to work until I paid some attention to IRQ assignments. According to the BIOS setup program, my machine was setup as follows (presumably the factory defaults):

Once I reserved all of these IRQs in /etc/pcmcia/config.opt, my ethernet PCMCIA card ended up on IRQ 9 instead of IRQ 3 and both it and the modem were happy.

Useful resources for this installation:

This machine upgraded to RH 6.2 with little problem, but when I left Syracuse, I bought this machine from them to keep at home and use as my primary Windows box so I didn't have to keep switching OSes on the other one.  Consequently, the Linux installation on this one doesn't get much exercise, and I probably won't upgrade it any further.

Gateway2000 P5-133 (retired home desktop)

Hardware highlights... This machine used to have Windows 3.11 and Slackware 3.1 on it.  At about the same time I decided to upgrade to Windows98 and RedHat6.0, my main disk (1.6 GB) started going south.  So I bought a new, larger disk to hold both new installations and installed them from scratch.

All the instructions tell you you should install Windows first, then Linux on a dual-boot machine.  But if I devoted half of the disk to Windows, I wanted to make sure I would still be able to boot Linux too (BIOS will only look at the first 1024 cylinders for boot sectors).  So before I started the Windows installation, I booted Linux from floppy and created a 24 MB Linux partition as the very first one on the drive (for RedHat's /boot).  This insured that both the Linux and Windows master boot records would appear early enough in the disk to be accessible to BIOS.  I'm not entirely sure if this is absolutely necessary, but it works.

This machine is now running RedHat 6.2  It installed easily, straight out of the box, and I think everything is working fine.  It does masquerading for my home network, which includes the Toshiba laptop, an ethernet print server feeding two printers, my wife's old laptop, and sometimes one or both of our work laptops.


Other Linux-Related Information...


Chemistry Software for Linux

Linux-Based Compute Servers for Computational Chemistry

I am, admittedly, most interested in Linux as a software development platform, but many people are using Linux PCs for chemistry applications.  Here are some links I've come across to interesting uses of Linux systems in chemistry, including Beowulf systems ("supercomputers" built from clusters of Linux boxes) and sites that are developing these ideas for application to chemistry.