4.13 Distributed Processing System Tests
4.13.6 Multiple Scenario Calculations on Same Dataset
For testing multiple scenarios on the same dataset, the following is implemented: Same data set supplied to each calculation node as local XML file.
Each node calculates multiple scenarios and saves the data in local XML file. Single node calculates all scenarios.
Using equation 4.11, volatility (v) is used as varying parameter for scenario testing:
Number of CBs: 350
Number of scenarios: 10 (v = 1% to 10% step size=1) Number of calculation nodes: 10
The calculation result shows that the multiple scenario calculation on the same dataset is a more efficient way of reducing calculation time for a given batch and, as expected, a linear inverse correlation between calculation node and total calculation time is observed. Table 4.21 and Figure 4.34 show the correlation between calculation time and number of calculation nodes for the multiple scenario calculation.
87
Table 4.21: Number of calculation nodes used vs calculation time for multiple scenario calculations Number of Calculation Nodes Calculation Time (sec) Speedup Factor 1 5,726 1.0 2 3,107 1.8 3 2,377 2.4 4 1,983 2.9 5 1,254 4.6 10 613 9.3
Figure 4.35: Number of calculation nodes used against calculation time for multiple scenario calculations
88
4.14 Chapter Summary
The investigation conducted has demonstrated the original contribution to the company specific design methods and implementation techniques using workstations as calculation nodes to form a highly specific calculation cluster for the company requirements. The aim is to investigate whether it is possible to implement a suitable solution for improving calculation efficiency for compute-intensive calculations. In addition, the goal is to be able to use existing technologies in the company to find an alternative, cost-effective, and optimally efficient way to utilise the workstation cluster for distributed processing that is easy to use and facilitates functionalities that are simple to manage. The original aim of the investigation is to set up a distributed processing cluster using existing workstations that are used by company staff as calculation nodes and a separate dedicated server as a distributed processing controller. The tests and investigations have shown promising results that the company’s compute-intensive applications can be modified accordingly to work with the bespoke-type distributed process-based calculation system. The test results confirm the expected calculation time improvements under a controlled environment. This has proved that it is feasible to design and develop a bespoke-type distributed processing system using the company’s existing hardware and software to provide a solution for calculation time limitations problems that are currently faced by the company. Even though the test results show considerable improvements in calculation time for particular applications, in real-time trading applications, a number of complex issues have to be addressed; these issues are investigated, and possible suitable solutions and recommendations are discussed in detail in Chapter 7 and 8.
The tested distributed processing approach has proved that using a new and innovative bespoke-type development that is particularly suited for the company’s hardware infrastructure and the applications used in the company is a better solution rather than following the standard distributed processing approach that requires specialised hardware and software configurations. The approach that is taken to design and build a loosely coupled distributed processing system that uses existing hardware and familiar software and programming environment has many advantages compared with highly specific integrated distributed processing that requires specialised hardware, software,
89
and programming environments. Hence, the bespoke-type loosely coupled designed is proved to be the most suitable solution for the company in its current situation, and this approach is used across all the calculation clusters implemented within the company that are described in detail in the forthcoming chapters.
The calculation time improvements using a bespoke-type distributed processing system are as expected, and the investigation was performed using a single MS-Excel application with linear type of datasets. However, most of the applications used in the company have nonlinear application structures and datasets, and in addition, various limitations and business regulation-related issues that need to be considered for the distributed processing system to be fully implemented using live trading scenarios with different cluster configurations. One of the methods of improving calculation time for nonlinear dataset applications is to use the suitable load balancing techniques within the distributed processed calculation cluster, and this is discussed in detail in Chapter 5. Even though, the tests conducted are under control environment, the simplified implementation of distributed processing system using existing hardware and software with appropriate modification has proved to be the most suitable and innovative solution for the company. In addition, it has demonstrated the possibilities of further improvements that can be made to the existing system that will considerably improve the calculation efficiency across all the business areas in the company.
90
5
Implementation of Adaptive and Self-Tuning Task
Scheduler and Load Balancing
5.1
Introduction
This chapter describes the original design techniques and methods used for distributed process load balancing in the distributed processing system that includes scheduling, resources monitoring and management. This is the second phase of the investigation that explained in section 1.4 in Chapter 1. A number of techniques, methods, and algorithms have been researched and successfully implemented in various types of distributed parallel processing systems for the last 20 years. However, some techniques are highly specialised and unique to particular systems such as operating system-level hyper-threading with multiple-core CPUs and parallel threads. For Northwest’s distributed processing system, the methods have to be simpler, bespoke- type algorithms using certain types of well-tested robust techniques. Some variations of existing load balancing techniques have been applied to ensure that the algorithms are simple to implement and easy to modify for different types of applications that are used within the distributed processing system. This is a new unique approach to solve the complex load balancing within the distributed applications.
The static and dynamic balancing techniques were tested on the workstation cluster with varying hardware- and software-specific parameters. For Northwest’s distributed processing system, the methods have to be bespoke-type load balancing algorithms that include some specific application-related parameters as well as hardware- and software-related parameters. Some variations of static and dynamic load balancing are applied with task allocations algorithms that are capable of supporting different types of applications that are currently used. Due to the critical nature of the calculations involved and the high reliability requirements of the Northwest infrastructure, the static load balancing algorithms performed well compared with dynamic load balancing, which is mostly applied to protect from unpredictable events within the distributed processing cluster. The dynamic load balancing is highly suited for fine- grained processes, and coarse-grained processes are less suited for efficient dynamic
91
load balancing. Hence, for the Northwest systems, the static load balancing is the primary load balancing system due to its robustness and reliability, and the dynamic load balancing is used as a secondary load balancing mechanism to safeguard against calculation node failure during the execution phase. Detailed tests are performed for certain applications for comparing the performance of various methods and the techniques that can be applied to the system. These tests are performed to check different methods that include application-specific parameters to evaluate the best possible combination that can provide a better solution for the company’s applications. The test results show the expected improvement in calculation times, and it is possible to implement an efficient static and dynamic load balancing for the company’s applications with appropriate data and functional decomposition methods.