Hmmm... the comment in that thread about "Multiple processors are superset of multiple JVMs" was false in 2006, and it's false now. Ignore it. A single JVM may span multiple processors, or a single processor may run multiple JVMs. But the other points look good. A database with transactions or locking is quite possibly the way to go. Alternately you might look at the Actor model, supported by other languages such as Erlang or Scala (which runs on the JVM), or by some Java libraries such as Functional Java or Kilim.
You know how many JVMs on which your application is deployed. Say you have 4 JVMS
This is how you can divide your work among multiple JVMs.
1. Java program running in each JVM will generate a random no say 51, 40, 33, 42 (4 JVMs so 4 random nos).
2. Each program will enter his random no in DB and wait till all four enters there random no.
3. After all the four random nos are entered in DB the program running on JVM with the least no (33 i.e. JVM 3) will become master and will divide the work and update the DB with the division of work (division of work mean which JVM will process which set of data).
4. Once the master JVM enters the plan All JVM can follow the plan.
Please let me know if this solution fits your problem.