FONKSİYONEL PROGRAMLAMA DİLLERİ İLE PARALEL PROGRAMLAMA

Günümüzde paralel sistemler büyük bir önem arzetmektedirler. Bu sistemler kullanılarak hesaplamalar daha hızlı ve verimlişekilde yapılabilmektedir. Ancak yazılımlarında bu yapıdan faydalanabilecekşekilde tasarlanmaları gerekmektedir ve hakim programlama paradigması olanimperatif dillerle bu iş görece zor ve maliyetli olabilmektedir. Bu sorunladaha basit çözümler üretebilen fonksiyonel paradigma günümüzde gittikçeyaygınlaşmaktadır. Bu çalışmada bazı parelel programlama modelleri veteknikleri incelenmiş ve bazı fonksiyonel programlama dillerinde bu model vetekniklerin nasıl gerçeklendiği ele alınmıştır.

PARALLEL PROGRAMMING WITH FUNCTIONAL PROGRAMMING LANGUAGES

In the present day parallel systems has a significant importance. These systems could make computations faster and more efficent. However software has to be designed accordingly and using the common imperative paradigm it could be relatively harder and costs more. Because of coming with easier solutions to this problem, functional paradigm is getting more popular nowadays. In this paper some parallel programming models and techniques are reviewed. It also examines how these models and techniques are implemented on functional programming languages.

___

  • MOORE, G. E., "Cramming more components onto integrated circuits", Proceedings of the IEEE, 86, 82-85, 1998.
  • SUTTER, H., "The free lunch is over: A fundamental turn toward concurrency in software", Dr. Dobb's Journal, 30, 202-210, 2005.
  • FULLER, S. H. and MILLET, L. I., "Computing performance: Game over or next level", Computer, 44, 3138, 2011.
  • AGARWAL, A. and LEVY, M., "The kill rule for multicore", In Proc. IEEE/ACM Design Automation Conf. (DAC), 750–753, San Diego, CA, USA, 2007.
  • VAJDA, A. s. Programming many-core chips. Springer, Jorvas, Finland, 2011.
  • BACKUS, J., "Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs", Communications of the ACM, 21, 613-641, 1978.
  • PACHECO, P., An introduction to parallel programming. Access Online via Elsevier, Burlington, MA, USA, 2011.
  • FLYNN, M. J., "Some computer organizations and their effectiveness", IEEE Transactions on Computers, 100, 948-960, 1972.
  • RAUBER, T. and RUNGER, G., Parallel programming: For multicore and cluster systems. Springer, Berlin, Hiedelberg Germany, 2010.
  • 0] AMDAHL, G. M., Validity of the single processor approach to achieving large scale computing capabilities. ACM, City, 1967.
  • 1] DOWD, K., SEVERANCE, C. R. and LOUKIDES, M. K., High performance computing. O'Reilly, 1998.
  • 2] GUSTAFSON, J. L., "Reevaluating Amdahl's law", Communications of the ACM, 31, 532-533, 1988.
  • 3] GUNTHER, N. J., A New Interpretation of Amdahl's Law and Geometric Scalability. arXiv preprint cs/02100172002.
  • 4] KARP, A. H. and FLATT, H. P., "Measuring parallel processor performance", Communications of the ACM, 33, 539-543, 1990.
  • 5] HEYWOOD, T. and RANKA, S., "A practical hierarchical model of parallel computation I", The model. Journal of Parallel and Distributed Computing, 16, 212-232, 1992.
  • 6] PANDEYy, A. K., Programming languages: principles and paradigms. Alpha Science International, Springer, İngiltere, 2010.
  • 7] VAN R. P. and HARIDI, S., Concepts, techniques, and models of computer programming. The MIT Press, USA, 2004.
  • 8] HOARE, C. A. R., Monitors: An Operating System Structuring Concept. Springer, City, 2002.
  • 9] HANSEN, P. B., "The programming language concurrent Pascal", IEEE Transactions on Software Engineering, 2, 199-207, 1975.
  • 0] SUTTER, H. and LARUS, J., "Software and the concurrency revolution", Queue, 3, 54-62, 2005.
  • 1] HERLIHY, M. and MOSS, J. E. B., "Transactional memory: Architectural support for lock-free data structures", ACM, 1993.
  • 2] CHURCH, A., The calculi of lambda-conversion, Volume 6 of Annals of Mathematics Studies. Princeton University Press, Princeton, USA, 1941.
  • 3] ARMSTRONG, J., A history of Erlang. ACM, City, 2007.
  • 4] CESARINI, F. and THOMPSON, S., Erlang programming. O'Reilly Media, Inc., Sebastopol, CA, USA, 2009.
  • 5] WILLIAMS, R., OCHSENBEIN, F., DAVENHALL, C., DURAND, D., FERNIQUE, P., GIARETTA, D., HANISCH, R., MCGLYNN, T., SZALAY, A. and WICENEC, A., VOTable: "A Proposed XML Format for Astronomical Tables", Standard Specification, US National Virtual Observatory, 2002.
  • 6] ARMSTRONG, J., "Erlang", Communications of the ACM, 53, 68-75, 2007.
  • 7] ODERSKY, M., SPOON, L. and VENNERS, B., Programming in Scala: a comprehensive step-by-step guide. Artima Inc, 2008.
  • 8] RAYMOND, E. S., The Cathedral & the Bazaar: Musings on linux and open source by an accidental revolutionary. O'Reilly, Sebastopol, CA, USA, 2008.
  • 9] STEELE, G. L., "Growing a language", Higher-Order and Symbolic Computation, 12, 221-236, 1999.
  • 0] ODERSKY, M., The Scala experiment: can we provide better language support for component systems? ACM, City, 2006.
  • 1] HEWITT, C., BISHOP, P. and STEIGER, R., A universal modular actor formalism for artificial intelligence. Morgan Kaufmann Publishers Inc., City, 1973.
  • 2] WAMPLER, D. and PAYNE, A., Programming Scala: Scalability= Functional Programming+ Objects. O'Reilly Media, Sebastopol, CA, USA, 2009.