This forum is aimed towards anybody who is working with the the MembraneEditor. Installation instructions are found here. Any questions, remarks or critics are welcome. Also this is a chance to get in contact with other users.
Post Reply
User avatar
bjoern
Site Admin
Posts: 210
Joined: 20.03.2006, 15:01
Contact:

Tune the MembraneEditor! Part I: Fun with Java Heap Space

Post by bjoern » 02.05.2012, 17:42

If you want to generate small or medium size membranes using the MembraneEditor, the following section will not be very interesting for you. If you want to generate larger files and you are using a 64 bit machine, usually this section will also not be of concern. But if you want to generate over-sized membranes, e.g. 2000x2000 Angstrom, or larger vesicles and export them to PDB format, the following section might be a good alternative to buying more physcial ram for your computer.

Tuning with Java VM Arguments

The MembraneEditor was developed using Eclipse. Downloading the project, it is easy to import it into the Eclipse application:

http://www.cellmicrocosmos.org/index_cm ... m2download

To tune a Java application like the MembraneEditor, VM (Virtual Machine) arguments can be used. The following image shows, where the VM arguments discussed in this article have to placed.
In addition, the program arguments can be used to define a path to a file to load when starting the MembraneEditor.
EclipseStartSettings.JPG
Eclipse Run Configurations
EclipseStartSettings.JPG (93.45 KiB) Viewed 15273 times
Heap Space

Java uses the so-called HeapSpace to store data in the memory of the computer. Usually, especially when running a 32 bit system, Java used to allocate only a few MB of RAM, like 256 MB or something similar. On 64 bit machines, Java already usually uses a few GB of Ram for the Heap Space. Anyway, in some extreme cases, this may not be sufficiant. If you want to create for example a very large membrane, e.g. 2000x2000 Angstrom, and to export it to PDB, you might need to define additional memory for your application.
To do so, the Xmx-option defines the maximum amount of space Java is allowed to allocate. Of course, this value has to be in the limits of available memory. If you have a computer with 4GB Ram, then the Operating System like Windows 7 or Ubuntu usually already needs around 1 GB Ram. Therefore, you could choose a size for the Heap Space of around 2500m. The small "m" indicates the MegaBytes. In addition, 32 bit Java usually limits also the Heap Space available. On 32 bit system you usually are happy if you can define a value of 1400m. The following value was chosen on a 64 bit Windows 7 machine with 8 GB of Ram:

-Xmx6428m


In addition, the Xms-option can be used to define the minmal/initial amount of available memory. This value has to be smaller then the Xmx-option. It makes sense to set this value, because otherwise Java might start with a very small amount of memory and has dynamically to extend the reserved memory each time the limits of the actual memory are reached. When using larger files, it is a good idea to start already with a appropriate Xms-value:

-Xms4028m

Set java thread stack size:

-Xss100m

Enable strictest checks, anticipating future default:

-Xfuture

Output cpu profiling data (this does not tune anything, just showing some information):

-Xprof

Reduce use of OS signals by Java/VM:

-Xrs


Garbage Collector

The usual Java Garbage Collection algorithm waits for a relative long time before it continues to tidy up the heap space. The CMS collector algorithm can be used to decrease the pause times and to improve the deletion of garbage from the memory. Of course, this method will use need more CPU time then the usual algorithm:

-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=1


Disable class garbage collection:

-Xnoclassgc

Activates incremental Garbage Collection

-Xincgc


Stereo

If you use professional Stereo equipment - like the nVidia Quadro (FX) cards or ATI Fire GL cards - then you can activate the stereo mode of the MembraneEditor by adding the following line to the VM:

-Dj3d.stereo=PREFERRED


References

Using the command java -X in a console will show some of the options discussed here.

Some of the information and more are found at the following pages.

http://docs.oracle.com/cd/E18930_01/htm ... abeic.html
http://www.devdaily.com/blog/post/java/ ... ze-control

User avatar
bjoern
Site Admin
Posts: 210
Joined: 20.03.2006, 15:01
Contact:

Re: Tune the MembraneEditor! Fun with Java Heap Space

Post by bjoern » 02.05.2012, 19:10

Fast Tuning for your VM - plug'n'play!

Code: Select all

-Xmx6428m
-Xms4028m
-Xss100m
-Xrs
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=1
Do not forget to change the Xmx/Xms arguments to be compatible to the size of your memory (the example stated above is compatible to a 64 bit machine with 8 GB Ram).

Post Reply