Information Technology Reference
In-Depth Information
4.1 Tests Setup
Two types of test configurations were used: homogeneous and heterogeneous ma-
chines. The homogeneous setting uses a cluster of eight workstations, each node
having the following features: CPU Intel Xeon E3 1225 3.10GHz (four cores),
16GB of RAM, 1TB HDD running different GNU/Linux distributions (open-
SUSE 12.3, Ubuntu 13.04/13.10/14.04, Kubuntu 14.04) with Python 3.3/3.4 in-
stalled. Similarly, the heterogeneous settings uses up to eleven nodes: nine four
cores nodes, one eight core node, all using a wider range of Intel Xeon CPUs and
an iMac with Intel Core i5 2.7 GHz. All nodes are connected to campus facilities
local network.
For all test a dedicated local server Intel Dual Core CPU, 2GB RAM and
1TB HDD was configured with the shared storage system using MongoDB and
GridFS.
A manager for configuring all remote nodes was used. We chose Ansible [11]
because its syntax is easy to read-and-learn and does not require specific agents
on every node. The configuration steps are as follows:
- Compile and install the standard GSLIB 90 with sisim v3.0
- Optional: compile and install the implemented C API with MongoDB and
GridFS drivers (section 4.3)
- Optional: compile and install an improved GSLIB sisim routine with GridFS,
named sisim-gfs to avoid ambiguities (section 4.3)
- Run Task Service with four Workers in each node with remote support:
$ taskservice.py --workers 4 --hosts nodes.txt
- Create the script who encapsulate the task to execute, to manage I/O and
required parameters (See Listing 1.1)
- On the master node, run the Application main which controls the task exe-
cution flow (Figure 4) with 96 realizations using 16 distributed workers:
$ main app.py --script sisim script.py -n 96 --workers 16
The creation, configuration and execution of the sisim script is straightforward
and no more requirements are needed. A simple measure, the average develop-
ment time for several programmers, has shown that it takes less than 25 minutes
Listing 1.1. Code snippet of sisim script
import subprocess
from strategy.prototype import StrategyScript
from strategy.prototype import GridFS as fs
class SisimScript(StrategyScript):
def main(self):
input = "/path/to/input/file"
output = "/path/to/output/file"
cmd = "sisim {0} {1}".format(input, output)
exit_status = subprocess.call(cmd, shell=True)
fs.save(output_file)
 
Search WWH ::




Custom Search