Tree-Like Distributed Computation Environment with Shapp Library
Abstract
:1. Introduction
2. Related Work
2.1. Distributed Workload Management Systems
- BOINC [14]—a system based on the use of computing power provided by Internet users. Example subprojects are: ATLAS@Home [15]—simulation of the ATLAS project (in LHC), Asteroids@home [16]—broadening the knowledge of asteroids, Big and Ugly Rendering Project (BURP) [17]—a non-commercial and open project focusing on the rendering of three-dimensional scenes in the cloud.
- Comcute [18]—the system dealing, among other things, with the genetic testing of a radical settlement, techniques and processing of images.
- Administration of resources (computers in the network).
- Management of a task queue.
- Support for task prioritization.
- Matchmaking of tasks to be carried out, which fulfill specific requirements.
- Providing an application programming interface (API) that simplifies the management of the entire system.
2.2. Types of Distributed Processing Systems
2.2.1. Structural Classification
- Distcc [23]—automatized to run distributed compilation.
- Linux Virtual Server [24]—software for building general purpose clusters. It is based on several systems with greater specialization, e.g., UltraMonkey [25]—a process-based process system for supporting a computing pool over the internet/intranet, Keepalived [26]—a distributed process-based system simplifying the use of Linux Virtual Server to ensure greater reliability and high availability of the calculation pool.
2.2.2. Functional Classification
- High-throughput computing. High-speed processing focuses on supporting computing units that require chaining. This class operates on a macro scale—the processing time of individual computing units is calculated in hours or even days. Examples of the use of this type of system are: Transparent conducting materials discovery [31] or minimizing cascading blackout risk [32].
- High-performance computing. In high-performance processing computing units can be completely paralleled (pool computing). This class operates on a micro scale—the processing time of individual computing units (tasks) is counted in milliseconds. It applies to the computing clusters. Examples of the use of this type of system are: Development of results of collisions in Large Hadron Collider [33] or materials development [34].
- Multi-task computing. Multi-tasking is an intermediate solution between high-throughput and high-performance processing. Tasks can be both sequential and parallel. The process concentrates on cooperation with the file system. Examples of the use of this type of system are: High-performance, distributed databases [22] or search engines [30].
3. Development of the Shapp Library
3.1. The Choice of the Basic Environment
- Input file generator with variable parameter values, with the same model and other parameter values not subject to change in the experiment.
- The result collector in an SQL database, allowing access to individual results and extracting trends resulting from simulation, finding extreme and optimal values.
- Automating parallel simulations using threads. This mechanism allows for running many simulations at the same time, but when the number of cores in the computer is exceeded, the simulations disturb each other because time is wasted for switching between processes. As a result of research on the parallelism of simulations, the Shapp library was developed, which allows for running a simulation pack in a distributed environment using a workload management tool.
- Type of processing. The first aspect that strongly limited the choice of available solutions is the type of processing required. Simulations of long-time tasks that cannot be paralleled meet class of high-performance processing systems.
- Execution environment. An important requirement is the ability to use currently available computing resources. The available computers are diverse, controlled by various operating systems (Linux, Windows). Only network processing supports such heterogeneous environment.
- Correct handling of .NET environment on Linux and Windows systems. The Feniks simulator is developed under the .NET environment, which is not fully supported on Linux systems, but it is possible to use the support of the Mono environment [23]. However, taking into consideration that most of the projects in our institute are developed in this technology, a library in the native language greatly improves its usability.
- License and cost. It was assumed that the used environment should be free, at least for academic use for an unlimited number of hosts.
3.2. HTCondor Weak Points
3.3. Fulfilling the Requirements
4. Application of Shapp to Non-Exhaustive Model Checking
5. The Tool-Shapp Library
- A program with an attached Shapp library should be able to differentiate if the current execution context is related to base (root) or descendant (child) computational unit.
- The result (as newly created files) of a descendant computational unit should be sent back to its parent unit.
- The library should support the creation of many descendant units using different approaches to unit creation: Via chaining consecutive programs (different than starting application with Shapp library), pool calculations or recursive invocations (in tree-like approach). The nested calls of submitted descendant units might be aware of the expected operating system, required operational memory, needs for processor cores and other software and hardware requirements.
- The library should inform the user about changes of the descendant unit status asynchronously. This mechanism should cover start, end, suspension and deletion broadcasting to the user of the library.
- The library should provide an interface for communication between parent and descendant unit. The use case for such mechanism is e.g., telemetry or neural network weights synchronization.
- The library should return a handle to the newly created descendant unit, e.g., as a descriptor, which will be treated as a differentiator of the computational units among the library. Besides any additional functionalities for computation control and communication, it should contain the numerical ID of the unit.
- When the application with Shapp library is about to close, it should not require the removal of its descendant units. The intention is to allow further processing in a detached state, without a supervisor. However, if the removal of descendant units during application closing is desired, it must be implemented by the user, calling the kill operation on the descriptors of descendant units.
- The library should provide an ability to perform a submission of a simple batch application (or a script) without the Shapp library in it.
- The library should correctly handle shared file systems. In the case of its usage, no unnecessary file transfers should be performed to and from a descendant unit (executables, input, and output files, shared libraries files). Additionally, it case of detected issues with availability in the shared file system, a fallback mechanism to standard file transfer should be used.
- The library should correctly handle breakdowns of the executors in such a way that a task is restarted as soon as the computational resources are available again. The restarted task instance can be performed on a different executor than during the previous attempt.
- The library should be able to handle exceptional situations caused by the code written by the user of the library. If an error caused by the software outside the library leads to program termination, the reason of the fail should be recorded as exception stack trace and all the logs and intermediate files should be transferred back to the parent.
5.1. The Operation of HTCondor
5.2. Library Adaptation to a New Use Case
- The library has to allow two types of termination of the computational unit:
- (a)
- Soft—when the computational unit has some time (described in the message) to end the computations and clean up the environment.
- (b)
- Hard—when the computational unit has to terminate without any delay, when the results are out interest or when the environment cleanup has to be done as quickly as possible.
- A computational unit has to be able to control the execution of its descendant computational units in a hierarchical way. The library should support the following operations without any additional user activities:
- (a)
- Cut-off branch—terminate execution of all the descendant units and indirectly descendant units of those up to the leaves; notably, with this ability and the one described under Section 4, a root computational unit can terminate the whole computing tree.
- (b)
- Detach yourself—after the procedure described in Section 2, terminate the execution of the computational unit which received the order.
- Descendant computational units have to be able to establish communication with their parent.
- Every computational unit has to be able to establish communication with the root computational unit.
- The library has to allow transmissions with arbitrary data structures on the allowed channels between computational units.
6. Tree-Like Distributed Computations
- The descendant copy starts from the beginning of main function, rather than from the branching point.
- The whole program context (stack, static data, code segment, heap) is recreated from scratch, directly from executable file as a new program, instead of reusing it as it happens for fork() function, where:
- -
- Stack (function calls) is copied almost completely [52].
- -
- Static data (global variables) and heap are copied completely.
- -
- Code segment (processor instructions which the program consists of) is shared—as it is read-only, no copy is necessary.
- Opened file descriptors are not shared with the descendant copy.
6.1. Communication
6.1.1. Static Interface
- A model the verified system expressed in DedAn input language.
- A path leading from the initial configuration to the starting configuration of crawler activity.
- A file with the return code of the agent which determines the result of verification of the deadlock hypothesis (true or false).
- A file containing a counter-example, if the return code informs that that the deadlock is found.
6.1.2. Dynamic Interface-Intranet Communication
- A server is hosted always by a computational unit. It is started at the beginning of the main function, before submission of any descendant unit. There is only one instance of a server started and its responsibility is to handle all the descendant and sibling units at the same time.
- A client is hosted always by descendant computational unit. It always connects to a server in its parent unit and in the root unit. After establishing the connection to the parent, if the descendant computational unit has any siblings, it also establishes connection to all its siblings. The addresses of the siblings are obtained from the parent unit.
- Lack of support for other programming languages prevents the integration of Shapp library into other programming languages, preserving its compatibility with the C# version.
- Lack of backward compatibility disallow communication between different versions of the library; however, given that the main application of Shapp is cloning the entire program, always with the latest libraries—this is not a real problem.
- Lack of human-readable messages can make debugging of the distributed application harder; still, this can be done using the C# debugger—as all the messages are just language class instances. Debugging communication between instances of the distributed program remains a problem, we do this by tracing the protocol steps to log files.
- In the file with structures definition (an example in Listing 2).
- In the main place with reaction definitions on the newly created message type (an example in Listing 3).
6.1.3. Polymorphic Dispatch
- The protocol behavior is encapsulated to particular message definitions.
- The protocol can be easily extended, without affecting already present message types.
- Definitions of the behavior and the data are close to each other in terms of location in the source code (single class space).
- Complex data types built-in into the C# language can be used without additional effort in the protocol messages, e.g., Dictionaries, HashTables, Sets, Matrices, etc.
- Already existing classes can easily gain the ability to become a part of the protocol; an example is a class defining a huge set of parameters for the computational program, such as a simulator. To be able to transfer this class over Shapp library protocol, the class has to simply extend the ISystemMessage interface.
7. Experiment
- To be able to make a comparison, the problem should be easy to realize in three environments:
- -
- Single machine, using:
- *
- Threads.
- *
- The Shapp library.
- -
- Multiple computers, using the Shapp library.
- Tasks realized on all the workers should be similar to avoid unnecessary noise in the results.
- Tasks should produce repeatable results.
- tasks should require some way of communication and synchronization between workers about their state and current parameters; however, the synchronization process should be periodic, with a frequency lower than 1 Hz to avoid overhead on workers during messages serialization (as the messages can be arbitrarily large, even for a small graph of 500 cities each message was over 2 MB).
7.1. Environment
- For threading—single server and for Shapp—single server: A single server with the following parameters:
- -
- OS—Microsoft Windows Server 2008 (as a virtual machine).
- -
- CPU—Intel Xeon CPU [email protected] GHz, Cores: 6, Threads: 12.
- -
- RAM—3.34 GB of virtualized memory.
- For Shapp—separate computers workers run in a set of two computers with the following parameters:
- -
- OS—Microsoft Windows 10.
- -
- CPU—Intel Core i5-4670 [email protected] GHz, Cores: 4, Threads: 4.
- -
- RAM—32 GB DDR3.
- For Shapp—lab workers run on a set of total 18 computers in a single lab in the following configuration:
- -
- A set of six computers with the following parameters:
- *
- OS—Microsoft Windows 10.
- *
- CPU—Intel Core i5-4670 [email protected] GHz, Cores: 4, Threads: 4.
- *
- RAM—32 GB DDR3.
- -
- A set of 12 computers with the following parameters:
- *
- OS—Linux CentOS 7.
- *
- CPU—Intel Core i5-8400 CPU @ 2.8GHz, Cores: 6, Threads: 6.
- *
- RAM—32 GB DDR4.
- *
- .NET execution environment—mono [59].
- A single server instance is used to compare the same task done using system threads and Shapp library. The main purpose of it is to analyze the influence of distributed workload management system usage on time and performance overhead, compared to threading solution.
- A set of individual computers is used to analyze the influence of distribution of the task on a set of weaker computers and the influence of network transmissions over LAN with the task parameters.
7.2. Conducting the Experiment
- The graph represents 500 cities.
- There are three workers realizing ACO algorithm.
- Each worker is holding and processing five ants,.
- The pheromone values on the edges are synchronized between workers once per 10 s.
- The algorithm runs for 240 s.
7.3. Results
- ACO algorithm parameters were not tuned very well (as this was not the aim of this experiment).
- Even though the synchronization of the pheromone along the workers was in all the scenarios done each 10 s, in both Shapp scenarios there were present significant delays (due to TCP transmissions).
- Comparing the Shapp scenarios, separate computers had more computational capacity, as can be seen in Figure 6.
7.4. Experiment Conclusions
8. Conclusions and Further Studies
Author Contributions
Funding
Acknowledgments
Conflicts of Interest
Abbreviations
Shapp | open source C# library for distributed workload management system control |
HTCondor | distributed workload management system |
DedAn | deadlock analyzer program |
ACO | ant colony optimization |
GA | genetic algorithm |
POSIX | Portable Operating System Interface for UNIX, family of standards describing an operating system API |
References
- Liu, H.; Wang, K.; Luo, J.; Chen, Z.; Yang, B.; He, R. Accelerating Large-scale Reservoir Simulations Using Supercomputers. In Proceedings of the 78th EAGE Conference and Exhibition, Vienna, Austria, 30 May 2016; pp. 1–5. [Google Scholar] [CrossRef]
- Daszczuk, W.B.; Mieścicki, J.; Grabski, W. Distributed algorithm for empty vehicles management in personal rapid transit (PRT) network. J. Adv. Transp. 2016, 50, 608–629. [Google Scholar] [CrossRef] [Green Version]
- Francesca, G.; Santone, A.; Vaglini, G.; Villani, M.L. Ant Colony Optimization for Deadlock Detection in Concurrent Systems. In Proceedings of the IEEE 35th Annual Computer Software and Applications Conference, Munich, Germany, 18–22 July 2011; pp. 108–117. [Google Scholar] [CrossRef] [Green Version]
- Daszczuk, W.B. 2-Vagabonds: Non-Exhaustive Verification Algorithm. Available online: https://www.springer.com/gp/book/9783030128340 (accessed on 2 March 2020).
- Baumann, A.; Appavoo, J.; Krieger, O.; Roscoe, T. A Fork() in the Road. Available online: https://www.microsoft.com/en-us/research/uploads/prod/2019/04/fork-hotos19.pdf (accessed on 2 March 2020).
- HTCondor Main Page. Available online: https://research.cs.wisc.edu/htcondor/ (accessed on 2 March 2020).
- Hollowell, C.; Barnett, J.; Caramarcu, C.; Strecker-Kellogg, W.; Wong, A.; Zaytsev, A. Mixing HTC and HPC Workloads with HTCondor and Slurm. J. Phys. Conf. Ser. 2017, 898, 082014. [Google Scholar] [CrossRef]
- Du, R.; Shi, J.; Zou, J.; Jiang, X.; Sun, Z.; Chen, G. A Feasibility Study on workload integration between HT-Condor and Slurm Clusters. EPJ Web Conf. 2019, 214, 08004. [Google Scholar] [CrossRef] [Green Version]
- Fajardo, E.M.; Dost, J.M.; Holzman, B.; Tannenbaum, T.; Letts, J.; Tiradani, A.; Bockelman, B.; Frey, J.; Mason, D. How much higher can HTCondor fly? J. Phys. Conf. Ser. 2015, 664, 062014. [Google Scholar] [CrossRef] [Green Version]
- Erickson, R.A.; Fienen, M.N.; McCalla, S.G.; Weiser, E.L.; Bower, M.L.; Knudson, J.M.; Thain, G. Wrangling distributed computing for high-throughput environmental science: An introduction to HTCondor. PLoS Comput. Biol. 2018, 14, e1006468. [Google Scholar] [CrossRef]
- Fajardo, E.; Würthwein, F.; Jones, R.; Philpott, S.; Strosahl, K. Limits of the HTCondor Transfer System. EPJ Web Conf. 2019, 214, 03008. [Google Scholar] [CrossRef] [Green Version]
- Gałecki, T.; Daszczuk, W.B. Shapp: Workload Management System for Massive Distributed Calculations. In Software Engineering Methods in Intelligent Algorithms; Radek, S., Ed.; Springer: Prague, Czech, 2019; pp. 318–329. [Google Scholar] [CrossRef]
- Sfiligoi, I. glideinWMS—A generic pilot-based workload management system. J. Phys. Conf. Ser. 2008, 119, 062044. [Google Scholar] [CrossRef] [Green Version]
- Pinthong, W.; Muangruen, P.; Suriyaphol, P.; Mairiang, D. A simple grid implementation with Berkeley Open Infrastructure for Network Computing using BLAST as a model. PeerJ 2016, 4, e2248. [Google Scholar] [CrossRef] [Green Version]
- Cameron, D.; Wu, W.; Bogdanchikov, A.; Bianchi, R. Advances in ATLAS@Home towards a major ATLAS computing resource. EPJ Web Conf. 2019, 214, 03011. [Google Scholar] [CrossRef] [Green Version]
- Ďurech, J.; Hanuš, J.; Vančo, R. Asteroids@home—A BOINC distributed computing project for asteroid shape reconstruction. Astron. Comput. 2015, 13, 80–84. [Google Scholar] [CrossRef] [Green Version]
- Patoli, M.Z.; Gkion, M.; Al-Barakati, A.; Zhang, W.; Newbury, P.; White, M. An open source grid based render farm for blender 3d. In Proceedings of the IEEE/PES Power Systems Conference and Exposition, Seattle, MA, USA, 15–18 March 2009; pp. 1–6. [Google Scholar] [CrossRef]
- Chorazyk, P.; Byrski, A.; Pietak, K.; Kisiel-Dorohinicki, M.; Turek, W. Volunteer computing in a scalable lightweight web-based environment. Comput. Assist. Methods Eng. Sci. 2017, 24, 17–40. [Google Scholar]
- Pellegrini, S.; Giacomini, F.; Ghiselli, A. A Practical Approach for a Workflow Management System. In Grid Middleware and Services: Challenges and Solutions; Domenico, T., Ramin, Y., Wolfgang, Z., Eds.; Springer: Boston, MA, USA, 2008; pp. 279–287. [Google Scholar] [CrossRef]
- Anderson, D.P. BOINC: A System for Public-Resource Computing and Storage. In Proceedings of the Fifth IEEE/ACM International Workshop on Grid Computing, Pittsburgh, PA, USA, 8 November 2004; pp. 4–10. [Google Scholar] [CrossRef] [Green Version]
- Haussmann, J.; Blochinger, W.; Kuechlin, W. Cost-efficient parallel processing of irregularly structured problems in cloud computing environments. Clust. Comput. 2019, 22, 887–909. [Google Scholar] [CrossRef]
- Raicu, I.; Foster, I.; Zhao, Y.; Szalay, A.; Little, P.; Moretti, C.M.; Chaudhary, A.; Thain, D. Towards data intensive many-task computing. In Data Intensive Distributed Computing: Challenges and Solutions for Large-Scale Information Management; Kosar, T., Ed.; IGI Global: Buffalo, NY, USA, 2012; pp. 28–73. [Google Scholar] [CrossRef] [Green Version]
- Pool, M. Distcc, a Fast Free Distributed Compiler. 2003. Available online: https://distcc.github.io/ (accessed on 2 March 2020).
- Zhang, W. Linux Virtual Server for Scalable Network Services. Available online: http://www.linuxvirtualserver.org/ols/lvs.pdf (accessed on 2 March 2020).
- Martin, A.; Gamess, E.; Urribarri, D.; Gómez, J. A Proposal for A High Availability Architecture for VoIP Telephone Systems based on Open Source Software. Int. J. Adv. Comput. Sci. Appl. 2018, 9, 1–11. [Google Scholar] [CrossRef]
- Han, M.; Yao, D.G.; Yu, X.L. A Solution for Instant Response of Cloud Platform Based on Nginx + Keepalived. In Proceedings of the International Conference on Computer Science, Communications and Multimedia Engineering, Beijing, China, 24–25 March 2019. [Google Scholar] [CrossRef]
- Matos, R.; Dantas, J.; Araujo, J.; Trivedi, K.S.; Maciel, P. Redundant eucalyptus private clouds: Availability modeling and sensitivity analysis. J. Grid Comput. 2017, 15, 1–22. [Google Scholar] [CrossRef]
- Sun, N.H.; Bao, Y.G.; Fan, D.R. The rise of high-throughput computing. Front. Inf. Technol. Electron. Eng. 2018, 19, 1245–1250. [Google Scholar] [CrossRef]
- Assiroj, P.; Hananto, A.L.; Fauzi, A.; Hendric Spits Warnars, H.L. High Performance Computing (HPC) Implementation: A Survey. In Proceedings of the Indonesian Association for Pattern Recognition International Conference (INAPR), Tangerang, Indonesia, 7–8 September 2018; pp. 213–217. [Google Scholar] [CrossRef]
- Valero-Lara, P.; Nookala, P.; Pelayo, F.L.; Jansson, J.; Dimitropoulos, S.; Raicu, I. Many-task computing on many-core architectures. Scalable Comput. Pract. Exp. 2016, 17, 32–46. [Google Scholar] [CrossRef] [Green Version]
- Brunin, G.; Ricci, F.; Ha, V.A.; Rignanese, G.M.; Hautier, G. Transparent conducting materials discovery using high-throughput computing. NPJ Comput. Mater. 2019, 5, 1. [Google Scholar] [CrossRef] [Green Version]
- Anderson, E.J.; Linderoth, J. High Throughput Computing for Massive Scenario Analysis and Optimization to Minimize Cascading Blackout Risk. IEEE Trans. Smart Grid 2017, 8, 1427–1435. [Google Scholar] [CrossRef]
- Bird, I. Computing for the Large Hadron Collider. Annu. Rev. Nucl. Part. Sci. 2011, 61, 99–118. [Google Scholar] [CrossRef]
- Correa-Baena, J.P.; Hippalgaonkar, K.; van Duren, J.; Jaffer, S.; Chandrasekhar, V.R.; Stevanovic, V.; Wadia, C.; Guha, S.; Buonassisi, T. Accelerating Materials Development via Automation, Machine Learning, and High-Performance Computing. Joule 2018, 2, 1410–1420. [Google Scholar] [CrossRef] [Green Version]
- Daszczuk, W.B. Discrete Event Simulation of Personal Rapid Transit (PRT) Systems. arXiv 2017, arXiv:1705.05237. [Google Scholar]
- Weitzel, D. Enabling Microsoft OneDrive Integration with HTCondor. Available online: https://arxiv.org/pdf/1907.03688.pdf (accessed on 2 March 2020).
- Bockelman, B.; Bejar, J.C.; Hover, J. Interfacing HTCondor-CE with OpenStack. J. Phys. Conf. Ser. 2017, 898, 092021. [Google Scholar] [CrossRef]
- Maciulaitis, R.; Brener, P.; Hampton, S.; Hildreth, M.; Hurtado Anampa, K.P.; Johnson, I.; Kankel, C.; Okraska, J.; Rodriguez Rodriguez, D.; Simko, T. Support for HTCondor high-Throughput Computing Workflows in the REANA Reusable Analysis Platform. Available online: https://cds.cern.ch/record/2696223/files/CERN-IT-2019-004.pdf (accessed on 2 March 2020).
- Erli, G.; Fischer, F.; Fleig, G.; Giffels, M.; Hauth, T.; Quast, G.; Schnepf, M.; Heese, J.; Leppert, K.; de Pedro, J.A.; et al. On-demand provisioning of HEP compute resources on cloud sites and shared HPC centers. J. Phys. Conf. Ser. 2017, 898, 1–6. [Google Scholar] [CrossRef]
- Asagba, P.O.; Ogheneovo, E.E. Qualities of Grid Computing that can last for Ages. J. Appl. Sci. Environ. Manag. 2007, 12, 47–52. [Google Scholar] [CrossRef]
- Georgatos, F.; Gkamas, V.; Ilias, A.; Kouretis, G.; Varvarigos, E. A Grid-enabled CPU Scavenging Architecture and a Case Study of its Use in the Greek School Network. J. Grid Comput. 2010, 8, 61–75. [Google Scholar] [CrossRef]
- Fu, H.; Wang, Z.; Chen, X.; Fan, X. A systematic survey on automated concurrency bug detection, exposing, avoidance, and fixing techniques. Softw. Qual. J. 2018, 26, 855–889. [Google Scholar] [CrossRef]
- Lima, B.; Faria, J.P. Towards the Online Testing of Distributed and Heterogeneous Systems with Extended Petri Nets. In Proceedings of the 10th International Conference on the Quality of Information and Communications Technology (QUATIC), Lisbon, Portugal, 6–9 September 2016; pp. 230–235. [Google Scholar] [CrossRef]
- Hoare, C.A.R. Communicating Sequential Processes; Prentice-Hall, Inc.: Upper Saddle River, NJ, USA, 1985. [Google Scholar] [CrossRef] [Green Version]
- Fonseca i Casas, P. Transforming classic Discrete Event System Specification models to Specification and Description Language. Simulation 2015, 91, 249–264. [Google Scholar] [CrossRef]
- Daszczuk, W.B. Integrated Model of Distributed Systems. Available online: https://www.springer.com/gp/book/9783030128340 (accessed on 2 March 2020).
- Mazzanti, F.; Ferrari, A.; Spagnolo, G.O. Towards formal methods diversity in railways: An experience report with seven frameworks. Int. J. Softw. Tools Technol. Transf. 2018, 20, 263–288. [Google Scholar] [CrossRef]
- Karna, A.; Chen, Y.; Yu, H.; Zhong, H.; Zhao, J. The role of model checking in software engineering. Front. Comput. Sci. 2018, 12, 642–668. [Google Scholar] [CrossRef]
- Yousefian, R.; Rafe, V.; Rahmani, M. A heuristic solution for model checking graph transformation systems. Appl. Soft Comput. 2014, 24, 169–180. [Google Scholar] [CrossRef]
- Pira, E.; Rafe, V.; Nikanjam, A. Deadlock detection in complex software systems specified through graph transformation using Bayesian optimization algorithm. J. Syst. Softw. 2017, 131, 181–200. [Google Scholar] [CrossRef]
- HTCondor User’s Manual. Managing a Job. Available online: https://htcondor.readthedocs.io/en/stable/users-manual/managing-a-job.html (accessed on 2 March 2020).
- Stevens, W.R.; Rago, S.A. Advanced Programming in the UNIX Environment. Available online: http://ptgmedia.pearsoncmg.com/images/9780321637734/samplepages/0321637739.pdf (accessed on 2 March 2020).
- Müller, J.; Lorenz, M.; Geller, F.; Zeier, A.; Plattner, H. Assessment of communication protocols in the EPC Network—Replacing textual SOAP and XML with binary google protocol buffers encoding. In Proceedings of the IEEE 17Th International Conference on Industrial Engineering and Engineering Management, Xiamen, China, 29–31 October 2010; pp. 404–409. [Google Scholar] [CrossRef]
- Eaddy, M. C# versus Java. Available online: http://www1.cs.columbia.edu/~eaddy/publications/csharpvsjava-eaddy-ddj-feb01.pdf (accessed on 2 March 2020).
- Hericko, M.; Juric, M.B.; Rozman, I.; Beloglavec, S.; Zivkovic, A. Object Serialization Analysis and Comparison in Java and .NET. SIGPLAN Not. 2003, 38, 44–54. [Google Scholar] [CrossRef]
- Cui, Y. Performance Test—BinaryFormatter vs Protobuf-Net. Available online: https://theburningmonk.com/2011/08/performance-test-binaryformatter-vs-protobuf-net/ (accessed on 2 March 2020).
- Feldmeier, D.C. A Survey of High Performance Protocol Implementation Techniques. Available online: https://link.springer.com/chapter/10.1007/978-1-4615-3194-4_2 (accessed on 2 March 2020).
- Fayeez, A.; Keedwell, E.; Collett, M. H-ACO: A Heterogeneous Ant Colony Optimization Approach with Application to the Travelling Salesman Problem. In Artificial Evolution; Lutton, E., Legrand, P., Parrend, P., Monmarché, N., Schoenauer, M., Eds.; Springer International Publishing: Paris, France, 2017; pp. 144–161. [Google Scholar] [CrossRef]
- Mono-Project Main Webpage. Available online: https://www.mono-project.com/ (accessed on 2 March 2020).
- Shapp Library Repository. Available online: https://github.com/saleph/shapp (accessed on 2 March 2020).
Open Source | Cost | License | Operating Systems | |
---|---|---|---|---|
Oracle Grid Engine | No | Paid | SISSL | Linux |
TORQUE | No | Free | Private | Linux |
Globus Toolkit | No | Free | Apache | Linux, MacOS |
SLURM | Yes | Free | GNU | Linux |
HTCondor | Yes | Free | Apache | Linux, MacOS, Windows |
POSIX | Shapp |
---|---|
int pid = fork(); | var selfSubmitter = new SelfSubmitter(inputFiles, arguments); var descriptor = selfSubmitter.Submit(); |
if (pid == 0) { act as child } else { act as parent } | int Main() { if (SelfSubmitter.AmIChildProcess()) { act as child } else { act as parent } } |
int pid = wait(NULL); | var descriptor = Shapp.Helper.WaitForAnyJobToEnd(jobDescriptors); |
kill(pid, SIGKILL); | descriptor.HardRemove(); |
exit(0); | Environment.Exit(0); |
Google Protobuf | XmlFormatter | BinaryFormatter | |
---|---|---|---|
Description language | Dedicated language | C# | C# |
Message representation | Binary | Text | Binary |
Size efficiency | Very high | Low | High |
Backward compability | Yes | No | No |
Polymorphism | No | Yes | Yes |
Supported languages | i.a. C#, C++, Java | C# only | C# only |
© 2020 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).
Share and Cite
Gałecki, T.; Daszczuk, W.B. Tree-Like Distributed Computation Environment with Shapp Library. Information 2020, 11, 143. https://doi.org/10.3390/info11030143
Gałecki T, Daszczuk WB. Tree-Like Distributed Computation Environment with Shapp Library. Information. 2020; 11(3):143. https://doi.org/10.3390/info11030143
Chicago/Turabian StyleGałecki, Tomasz, and Wiktor Bohdan Daszczuk. 2020. "Tree-Like Distributed Computation Environment with Shapp Library" Information 11, no. 3: 143. https://doi.org/10.3390/info11030143
APA StyleGałecki, T., & Daszczuk, W. B. (2020). Tree-Like Distributed Computation Environment with Shapp Library. Information, 11(3), 143. https://doi.org/10.3390/info11030143