A distributed system for conducting chess games in parallel

https://doi.org/10.1016/j.procs.2017.11.156Get rights and content
Under a Creative Commons license
open access

Abstract

This paper proposes a distributed and scalable cloud based system designed to play chess games in parallel. Games can be played between chess engines alone or between clusters created by combined chess engines. The system has a built-in mechanism that compares engines, based on Elo ranking which finally presents the strength of each tested approach. If an approach needs more computational power, the design of the system allows it to scale. The system was designed using a loosely coupled architecture approach and the master-slave pattern. It works under Unix or MacOS operating systems. In order to split chess engine processing between every CPU in the system the Akka technology with the Scala language was used while the other part was written in Java. We tested many free chess engines connected to the system by the UCI protocol supported by the proposed system. CloudAMQP is an implementation of Advanced Message Queue Protocol and was used as a message-oriented middleware. This layer was created to split games between every available processing node connected to the system. This element also contributes to greater fault tolerance. We present results of games played between many available chess engines.

Keywords

chess engine
Universal Chess Interface protocol
Elo ranking
cloud computing
loosely coupled architecture

Cited by (0)