The goal of this thesis is to provide an overview of the literature of algorithms discovering causal relationships, to implement one such algorithm and to implement a possible parallelization of this algorithm.
To obtain causal relationships when only observational data is available is a specifically hard and computationally intensive task in most cases, and also the discovery of cause-effect relationships is limited. Hence improvements in runtime of these algorithms would give a direct and practical benefit to researchers of several fields.
Over the past years, one of the trends in informatics has been the spread of the general-purpose computing on GPU due to technical developements and to the platforms developed by manufactures of graphics cards in order to support such demand. Programs written in this approach often achieved improvements in runtime by one order of magnitude, and exploitation of this potential seems benefical in the field of causal discovery as well.
My goal was to design and implement a program in which the PC algorithm implemented using the original approach is integrated with the parallelization of its computationally intensive parts, and in which one can easily compare these to approaches in terms of correctness and runtime.