advaitha,
On a 32 bit system (IA32/0x86) the computer can only reference 4Gig of memory(2^32= 4,294,967,296 bytes = 4Gig).
Linux and other operating systems are smart and set it up so each program can adress their own 4gig of memory(using virtual memory). I think however that in Linux that 4 gig is split into 3 for program and 1 for Kernel. I think there are kernel options to change the split but not sure about it.
The only way to have one program to reference more than 4Gig of memory is to use a 64bit CPU and OS (2^64 > 4Gig).
So you must either reduce memory usage, or change computer arcatecture.
Maui