**4. Distributed Wiki‐based system for stochastic programming and modeling**

As is mentioned above, even empowered by huge computing power accessible to via Web services and clouds, users have still not exhausted possibilities, because of the lack of communication. Only communication and legal reuse of existing software assets in addition to available computing power can ensure high speed of scientific activities. In this section is described another distributed scientific software development system, which is developed in parallel and independently from the system described in Section 4. However, both of these are sharing similar ideas.

#### **4.1. The architecture of stochastic programming and modeling system**

We are started from the following hypothesis: the duration of development of scientific soft‐ ware can be decreased, the quality of such software can be improved using together with the power of the grid/cloud infrastructure, Wiki‐based technologies, and software synthesis methods. The project was executed via three main stages:


The system for stochastic programming and statistical modeling based on Wiki technologies (WikiSPSM) consists of the following parts (**Figure 1**):


based on a description of its structure and properties of the used components, operations with large‐scale mathematical models, steady‐state analysis, transient and frequency‐domain analysis, sensitivity and statistical analysis, parametric optimization and optimal tolerance

Computational supporting services are based mostly on innovative numeric methods and can be composed by an end user for workflow execution on evaluable grid/cloud nodes [3]. They are oriented, first of all, on Design Automation domain, where simulation, analysis, and design can be done for different electronic circuits, control systems, and dynamic systems composed of electronic, hydraulic, pneumatic, mechanical, electrical, electromagnetic, and

The developed methodology and modeling toolkit support collective design of various micro‐

As is mentioned above, even empowered by huge computing power accessible to via Web services and clouds, users have still not exhausted possibilities, because of the lack of

electro‐mechanical systems (MEMS) and different microsystems in the form of chips.

**4. Distributed Wiki‐based system for stochastic programming and** 

assignment, solution centering, yield maximization, and so on [3].

other physical phenomena elements.

**Figure 3.** WebALLTED graphical workflow editor.

78 Recent Progress in Parallel and Distributed Computing

**modeling**

• Software artefacts (programs, subroutines, models, etc.) storage and management system.

The user interface portal consists of four main components:


WikiSPSM is easy extensible and evolvable because of the architectural decision to store all the mathematical models, algorithms, programs, and libraries in central database.

Initially, it was planned that WikiSPSM will enable scientific users to write their software in C/C++, Java, Fortran 90, and QT programming languages. Because of this, the command‐line interface is chosen as the architecture of communication between the UI and software genera‐ tor part. Software generator performs the following functions: compilation, task submission (to distributed infrastructure or to single server), task monitoring, and control of the tasks and their results. For the compilation of the programs, we have chosen external command‐

**Figure 4.** Main components of the Wiki‐based stochastic programming and statistical modeling system.

line compilers. The architecture of the system lets to change its configuration and to work with another programming language having related SDK with command‐line compiler. The users also are encouraged to use command‐line interfaces instead of GUI. Latest version of WikiSPSM does not support application with GUI interfaces. This is done because of two fac‐ tors: (a) many scientific applications are command‐line‐based and the graphical representa‐ tion of the data is performed with other tools; (b) the support of GUI gives more constraints for scientific application.

In early versions of WikiSPSM, the compilation and execution actions were made in server side.2 Object server creates an object task for each submitted data array received from the portal. Task object parses the data and sends back to user (via portal). For tasks monitoring, results getting the token are used. After the finishing of task, it transfers the data to server object. After that it is time for the compilation and execution. Each task is queued and scheduled. If it is not sufficient amount of resources (e.g., working nodes), task is laid out to the waiting queue. When the task is finished, its results are stored in DB (**Figure 4**).

### **4.2. Bridge to distributed systems**

• The component of IDE (integrated developing environment) is implemented for the soft‐

• The repository of mathematical functions. This component helps user to retrieve, rewrite, and append the repository of mathematical functions with new artefacts. WikiSPSM sys‐ tem is using NetLib repository LAPACK API; however, it can be improved on demand and can use other libraries, e.g., ESSL (Engineering Scientific Subroutine Library) or Parallel

WikiSPSM is easy extensible and evolvable because of the architectural decision to store all

Initially, it was planned that WikiSPSM will enable scientific users to write their software in C/C++, Java, Fortran 90, and QT programming languages. Because of this, the command‐line interface is chosen as the architecture of communication between the UI and software genera‐ tor part. Software generator performs the following functions: compilation, task submission (to distributed infrastructure or to single server), task monitoring, and control of the tasks and their results. For the compilation of the programs, we have chosen external command‐

the mathematical models, algorithms, programs, and libraries in central database.

**Figure 4.** Main components of the Wiki‐based stochastic programming and statistical modeling system.

ware modeling and code writing.

80 Recent Progress in Parallel and Distributed Computing

ESSL [16].

Soon after first test of WikiSPSM was observed, that client‐server architecture does not fit the demands on computational resources. Increased number of users and tasks have negative impact on the performance of overall system. The architecture of the system has been changed in order to solve this issue.

In current architecture, the component for software generation was changed. This change was performed via two stages:


Tests of redesigned component show very good results. For example, for 150 tasks, Monte‐ Carlo problem using new (bridged to distributed systems) execution component was solved in two times faster than initial server‐based application component. The "toy example" (calculation of the factorial of big numbers) was solved eight times faster.

More comprehensive information about WikiSPSM could be found in Ref. [11, 12, 20, 21].

<sup>2</sup> Server side" here means general backend including cloud also.

<sup>3</sup> OS—the operating system.

**Figure 5.** The architecture of WikiSPSM with the cloud computing component.
