how to

system requirements

You can run SMART in any computer running LINUX, Windows or MAC OS X.
The tool uses shared memory for storing the text. Thus smart requires your system to allow the allocation of shared memory. The default size of the text is 1MB, which is small enough to be supported by any system.
However if you want to use smart for testing algorithms on larger texts you must check your system settings for shared memory.

Manage shared memory on a MAC OS X

The amount of shared memory available on a Mac is configured at boot time. Once the shared memory system has been initiallized it is not possible to change the shared memory configuration. At present the same amount of shared memory is configured on any Mac (about 4MB), regardless of the number of processors or the amount of total memory available.
You can view the shared memory settings on your Mac by opening the Terminal application and giving the command

sysctl -A | grep shm

which should produce something like:

kern.sysv.shmmax: 4194304
kern.sysv.shmmin: 1
kern.sysv.shmmni: 32
kern.sysv.shmseg: 8
kern.sysv.shmall: 1024

As of Mac OS X 10.3.9 a relatively simple mechanism has existed for configuring shared memory at boot time. If the file /etc/sysctl.conf exists then the settings in this file are applied at boot time, before the default shared memory settings. To change the shared memory settings you have to type the command:

sudo emacs /etc/sysctl.conf

It is likely this file doesn't exist on your system, in which case an empty file will be created. Edit this file so that it contains the lines:


These settings increase the amount of shared memory to four (4) times the usual default. These shared memory settings will be applied the next time the computer boots. You can verify the settings after the reboot using the "sysctl -A" command demonstrated above.
Shared memory can be viewed with the ipcs command and you can delete shared memory segments with the ipcrm command.

Manage shared memory on LINUX

In order to configure shared memory on linux you have to login as root, then edit the file /etc/sysctl.conf.
The kernel.shmax parameter defines the maximum size in bytes for a shared memory segment. Determine the value of kernel.shmax by performing the following:

cat /proc/sys/kernel/shmmax

The kernel.shmall parameter sets the total amount of shared memory in pages that can be used at one time on the system. Set the value of both of these parameters to the amount physical memory on the machine.
As in the previous case you can determine the value of kernel.shmax by performing the following:

cat /proc/sys/kernel/shmmall

Set the values of kernel.shmax and kernel.shmall, as follows:

echo MemSize > /proc/sys/shmmax
echo MemSize > /proc/sys/shmall

where MemSize is the number of bytes.
For example, to set both values to 2GB, use the following:

echo 2147483648 > /proc/sys/kernel/shmmax
echo 2147483648 > /proc/sys/kernel/shmall

Then reboot the machine using.
Shared memory can be viewed with the ipcs command and you can delete shared memory segments with the ipcrm command.

Manage shared memory on WINDOWS VISTA

Windows Vista sets aside a certain amount of memory space in case it needs to be used by open programs. You can adjust how much shared memory is set aside by Vista by changing settings in your system's BIOS menu.
First restart your computer and repeatedly tap the "F1" button. This should open the BIOS menu. Some computers use "F10" or the "Delete" key. A message is displayed immediately on restart alerting you to the proper key for your system.
Press the down arrow to select "Integrated Peripherals" and hit the "Enter" key.
Highlight the option titled "AGP Aperture Size." This option designates your shared memory.
Adjust the number according to your desires. Lower settings give you less shared memory, while higher ones give you more.
Hit "F10" to save an exit.