ABSTRACT
The genetic programming tool EDDIE has been shown to be a successful financial forecasting tool, however it has suffered from an increase in execution time as new features have been added. Speed is an important aspect in financial problems, especially in the field of algorithmic trading, where a delay in taking a decision could cost millions. To offset this performance loss, EDDIE has been modified to take advantage of multi-core CPUs and dedicated GPUs. This has been achieved by modifying the candidate solution evaluation to use an OpenCL kernel, allowing the parallel evaluation of solutions. Our computational results have shown improvements in the running time of EDDIE when the evaluation was delegated to the OpenCL kernel running on a multi-core CPU, with speed ups up to 21 times faster than the original EDDIE algorithm. While most previous works in the literature reported significantly improvements in performance when running an OpenCL kernel on a GPU device, we did not observe this in our results. Further investigation revealed that memory copying overheads and branching code in the kernel are potentially causes of the (under-)performance of the OpenCL kernel when running on the GPU device.
- F. Allen and R. Karjalainen. Using genetic algorithms to find technical trading rules. Journal of Financial Economics, 51:245--271, 1999.Google ScholarCross Ref
- D. A. Augusto and H. J. Barbosa. Accelerated parallel genetic programming tree evaluation with OpenCL. Journal of Parallel and Distributed Computing, 73(1):86--100, 2013. Google ScholarDigital Library
- M. Austin, G. Bates, M. Dempster, V. Leemans, and S. Williams. Adaptive systems for foreign exchange trading. Quantitative Finance, 4(4):37--45, 2004.Google ScholarCross Ref
- J. Backus. The syntax and semantics of the proposed international algebraic language of Zurich. In International Conference on Information Processing, pages 125--132. UNESCO, 1959.Google Scholar
- A. Delévacq, P. Delisle, M. Gravel, and M. Krajecki. Parallel ant colony optimization on graphics processing units. Journal of Parallel and Distributed Computing, 73(1):52--61, 2013. Google ScholarDigital Library
- R. Edwards and J. Magee. Technical Analysis of Stock Trends. Taylor & Francis, 1992.Google Scholar
- M. A. Franco, N. Krasnogor, and J. Bacardit. Speeding up the evaluation of evolutionary learning systems using GPGPUs. In Proceedings of the 12th annual conference on Genetic and evolutionary computation, pages 1039--1046. ACM, 2010. Google ScholarDigital Library
- M. Harris. Optimizing parallel reduction in CUDA.Google Scholar
- M. Hutter. JOCL API documentation.Google Scholar
- M. Kampouridis. An initial investigation of choice function hyper-heuristics for the problem of financial forecasting. In Evolutionary Computation (CEC), 2013 IEEE Congress on, pages 2406--2413, 2013.Google ScholarCross Ref
- M. Kampouridis, A. Alsheddy, and E. Tsang. On the investigation of hyper-heuristics on a financial forecasting problem. Annals of Mathematics and Artificial Intelligence, 2012. Accepted for Publication. Google ScholarDigital Library
- M. Kampouridis and E. Tsang. EDDIE for investment opportunities forecasting: extending the search space of the GP. In Evolutionary Computation (CEC), 2010 IEEE Congress on, pages 1--8. IEEE, 2010.Google ScholarCross Ref
- M. Kampouridis and E. Tsang. Investment Opportunities Forecasting: Extending the Grammar of a GP-based Tool. International Journal of Computational Intelligence Systems, 5(3):530--541, 2012.Google ScholarCross Ref
- J. Koza. Genetic Programming: On the programming of computers by means of natural selection. Cambridge, MA: MIT Press, 1992. Google ScholarDigital Library
- W. B. Langdon. Graphics processing units and genetic programming: an overview. Soft Computing, 15(8):1657--1669, 2011. Google ScholarDigital Library
- S. Martinez-Jaramillo. Artificial Financial Markets: An agent-based Approach to Reproduce Stylized Facts and to study the Red Queen Effect. PhD thesis, CFFEA, University of Essex, 2007.Google Scholar
- Oracle. java.nio.bytebuffer API.Google Scholar
- R. Poli, W. Langdon, and N. McPhee. A Field Guide to Genetic Programming. Lulu.com, 2008. Google ScholarDigital Library
- T. Puźzniakowski and M. A. Bednarczyk. Towards an OpenCL implementation of genetic algorithms on gpus. pages 190--203, 2012. Google ScholarDigital Library
- H. Wang and A. S. Weigend. Data mining for financial decision making. Decision support systems, 37(4):457--460, 2004. Google ScholarDigital Library
Index Terms
- Working with OpenCL to speed up a genetic programming financial forecasting algorithm: initial results
Recommendations
Performance Tuning of Matrix Multiplication in OpenCL on Different GPUs and CPUs
SCC '12: Proceedings of the 2012 SC Companion: High Performance Computing, Networking Storage and AnalysisOpenCL (Open Computing Language) is a framework for general-purpose parallel programming. Programs written in OpenCL are functionally portable across multiple processors including CPUs, GPUs, and also FPGAs. Using an auto-tuning technique makes ...
An OpenCL micro-benchmark suite for GPUs and CPUs
Open computing language (OpenCL) is a new industry standard for task-parallel and data-parallel heterogeneous computing on a variety of modern CPUs, GPUs, DSPs, and other microprocessor designs. OpenCL is vendor independent and hence not specialized for ...
Developing High-Performance, Portable OpenCL Code via Multi-Dimensional Homomorphisms
IWOCL '19: Proceedings of the International Workshop on OpenCLA key challenge in programming high-performance applications is achieving portable performance, such that the same program code can reach a consistent level of performance over the variety of modern parallel processors, including multi-core CPU and ...
Comments