Arena Simulation 64bit runs a Model with over 323 Million Active Entities
The new Arena version 15 simulation software could allow the US government to run demographics simulation of the entire population of the USA. Each individual would evolve individually while being impacted by its environment and the other people around. Such a model could generate births, deaths and handle immigration, by tracking attributes of the people such as age, gender, location, etc. It would allow quality forecasting for the resources required in public services.
Rockwell has updated the core of the Arena software and turned it into a 64bit native application. This means that the amount of runtime memory the software utilizes is no longer limited to 2/4 GB (depending on the version of Windows: 32bit/64bit). On a 64bit Windows system, the software can now use all of the available RAM the computer has: up to 8 Tb (8192 GB)!!
Hardware and Windows setup for running large simulation models
SimWell has made all of the tests in this article using a Windows 10 64bit laptop which has an Intel i7 processor, 24GB of RAM and a SSD (solid state drive). Note that the Windows operating system can also extend the system memory by creating a “page file” on the hard drive, which stores the additional information which doesn’t fit in the physical RAM available, at any point in time. That page file is configurable. Here, for the tests made which required over 24GB of memory, the page file was setup to a fixed size of 50 GB. This technique would probably be quite slow to execute on a machine which had a regular “non-SSD” hard drive, which is significantly slower for read/write operations.
This being said, RAM memory has become relatively inexpensive, these past few years and buying more could be an easy solution. Nowadays, on a desktop PC, one could setup 64 GB of RAM on a machine by spending only a few hundred dollars, as long as the motherboard of the PC supports it.
SimWell’s first tests with the new larger models
SimWell wanted to start by confirming that a model could easily handle each individual person living in Canada, with a decent number of attributes stored in each entity. The model used was basically just a create module, followed by an infinite hold, to keep all of the created entities active. By default, when a new Arena model is created, it is not quite ready to be executed on a large scale. To prevent Arena from using a lot more system resources than required, some parameters have been set to relatively low default values. These parameters are the “Array Sizes” which can be found in the “Run -> Setup” menu of your new model. The RSET value is the one that dictates the volume of memory which will be allocated to storing the active entities in model, along with all of their attribute values.
The entities have a certain number of default values, like entity number, create time, etc. Also, each user-defined attribute created in the model makes each entity bigger in terms of runtime memory required. Note that the attributes use up the same amount of space, whether their value has been set or not. For example, a real attribute is defaulted to zero and that zero number uses up some memory to be stored in the entity.
The default value for RSET is 6 million. Without any user-defined attribute, Arena gives us a runtime error after 352,890 entities have been created. The model stops, since it cannot store any more active entities. We then set the RSET to 1 billion, and managed to create over 58 million entities. Afterwards, we tried a few different combinations of RSET values and user-defined attributes, until we found a decent configuration which could accommodate the population of Canada, including some potential growth, along with 20 real-number attributes to describe each person. An RSET value of 1.5 billion allowed us to create a little over 40 million entities here. About 18 GB of RAM were being used by Arena at the end of that run, according to the Windows Task Manager.
Pushing the limits of Arena 15
The experts at SimWell were obviously curious to see how far they would be able to push the number of active entities. After a few attempts, one model has created over 323 million entities, which is a little more than the population of the United States. Very impressive and promising!
Please find a table below with a list of tests made during this experiment.
|RSET||Attributes||Max Active Entities||Approx Memory Used by Arena (GB)|
|6,000,000 (default)||no user defined attribute||352,890||0.2|
|1,000,000,000||no user defined attribute||58,823,515||12|
|1,000,000,000||10 real attributes||37,037,028||12|
|1,000,000,000||1 real attribute of 10 rows||37,037,028||12|
|1,500,000,000||no user defined attribute||88,235,280||18|
|1,500,000,000||1 real attribute of 10 rows||55,555,546||18|
|1,500,000,000||1 real attribute of 15 rows||46,874,992||18|
|1,500,000,000||1 real attribute of 20 rows||40,540,533||18|
|2,000,000,000||no user defined attribute||117,647,045||24|
|2,000,000,000||1 real attribute of 10 rows||74,074,065||24|
|5,500,000,000||no user defined attribute||323,529,398||60|