Re: CCL:Gaussian98 source code and facility of parallel implementation



Hi,
 I had the same problem and asked the gaussian support about it. They send me
 a documentation how to change the shmmax parameter.
 I think the first thing you need is a kernel compiled with big memory support
 (we are using the 2.4.x kernels and I have enabled 64GB support).
 Before recompiling the kernel you can change the shmmax parameter in the
 kernel_source_dir/include/linux/shmmax (for 2.4.x kernels, for 2.2.x kernel
 see the attachment I'v got from gaussian support). But I'm not sure if this
 is neccessary because I did it but with a too small value. So gaussian still
 didn't run in parallel mode.
 After the following command gaussian run fine in parallel mode then:
  echo "2147483648" >/proc/sys/kernel/shmmax
 This enables 2GB shared memory support, a higher value can be specified but
 will be automatically reduced to 2GB.
 I hope it helps you,
 Bernd
 
Increasing the size of the Linux shared memory segment
 The size of the shared memory segment is set by the parameter
 SHMMAX, in /usr/src/linux/include/asm/shmparam.h.  The default
 value in 2.0 and 2.2 kernels is 0x2000000, or 32MB.  To increase
 the value of SHMMAX, edit shmparam.h, rebuild the kernel, and reboot.
 If you are comfortable with the process of building the Linux kernel,
 we suggest you try the recently released 2.2.1 kernel (get it from
 ftp.kernel.org or a mirror site).  The 2.2 kernels have improved SMP
 performance and the ability to change the shared memory size on the fly,
 by changing the value in /proc/sys/kernel/shmmax.  For example,
 # echo "67108864" >/proc/sys/kernel/shmmax
 would set the maximum shared memory segment size to 64MB.
 If you are not familiar with the procedure for building the kernel,
 and you are using the kernel distributed with Red Hat Linux 5.2,
 here is a step-by-step guide to rebuilding the Red Hat kernel:
 1) Make sure the kernel source and headers are installed, by doing
 % rpm -qa | grep kern
 kernel-2.0.36-0.7
 kernel-pcmcia-cs-2.0.36-0.7
 kernelcfg-0.5-3
 kernel-headers-2.0.36-0.7
 kernel-source-2.0.36-0.7
 If you do not see
 kernel-headers-2.0.36-0.7
 kernel-source-2.0.36-0.7
 you must install them from the Red Hat CD, by doing, as root
 # rpm -i kernel-headers-2.0.36-0.7.i386.rpm
 # rpm -i kernel-source-2.0.36-0.7.i386.rpm
 2) Now, as root, edit /usr/src/linux/include/asm/shmparam.h and
 change the value of SHMMAX to an appropriate value (3/4 of the amount of
 physical memory would be reasonable).
 3) Now do, as root
 # cd /usr/src/linux
 # make mproper
 # make config
 make config will ask a series of configuration questions, it will look like:
 # make config
 rm -f include/asm
 ( cd include ; ln -sf asm-i386 asm)
 /bin/sh scripts/Configure arch/i386/config.in
 #
 # Using defaults found in arch/i386/defconfig
 #
 *
 * Code maturity level options
 *
 Prompt for development and/or incomplete code/drivers (CONFIG_EXPERIMENTAL)
 [Y/n/?]
 and so on.  To every question, TAKE THE DEFAULT VALUE BY HITTING ENTER.
 When you are done, do:
 # make dep; make boot
 A great deal of output will scroll by as a new kernel is compiled.  When
 the build is complete, the new kernel will be in the file
 /usr/src/linux/arch/i386/boot/zImage.
 4)  Now you may test the new kernel by booting it from a floppy.  Put a blank
 diskette in you floppy drive and do, as root:
 # dd if=/usr/src/linux/arch/i386/boot/zImage of=/dev/fd0
 5)  Now reboot from this floppy.  If all seems well you may configure LILO
 to boot the new kernel, or continue to boot from floppy.
 The Red Hat Linux 5.2 manual discusses building a custom kernel, and using
 LILO to boot it in Section 11.6, pp 197-200, to which we refer you for
 further details.