In December 2017 I finished all academic work necessary for a degree of Master of Arts in Interdisciplinary Studies with a concentration in Computational Social Science at George Mason University. (Update: The degree was also awarded in December.) To finish their academic work, students are given a choice of a thesis or final project. I went with the thesis as I thought I would learn more since it was presented as a more difficult path. I was right on both counts. Below you will find the abstract, the thesis, and code. The software is made available under Apache License Version 2.0.
Abstract
The use of simulations by social scientists in exploring theories and hypotheses is well documented. As computer systems have grown in capacity, so have interests of social scientists in executing larger simulations. Social scientists often approach their simulation design from the top down by selecting an Entity-Based Model (EBM) framework from those that are readily available, thus limiting modeling capability to the available frameworks. Ultimately, the framework is dependent upon what is at the bottom, the hardware architecture that serves as the foundation of the computing system. Parallel hardware architecture supports the simultaneous execution of a problem split into multiple pieces. Thus, the problem is solved faster in parallel. In this thesis, a selection of parallel hardware architectures is examined with a goal of providing support for EBMs. The hardware's capability to support parallelization of EBMs is described and contrasted. A simple EBM is tested to illustrate these capabilities and implementation challenges specific to parallel hardware are explored. The results of this research offer social scientists better informed choices than the sequential EBM frameworks that currently exist. Matching the model to the correct supporting hardware will permit larger scale problems to be examined and expands the range of models that a social scientist can explore.