Abstract
Locality-aware algorithms over distributed arrays can be very difficult to write. Yet such algorithms are becoming more and more important as desktop machines boast more and more processors. This paper shows how a dependently-typed programming language can aid in the development of these algorithms and statically ensure that every well-typed program will only ever access local data. Such static guarantees can help catch programming errors early on in the development cycle and maximise the potential speedup that multicore machines offer. At the same time, the functional specification of effects presented here facilitates the testing of and reasoning about algorithms that manipulate distributed arrays.
Article PDF
Similar content being viewed by others
References
Allen, E., Chase, D., Luchangco, V., Maessen, J.-W., Ryu, S., Steele, G.L. Jr., Tobin-Hochstadt, S.: The Fortress language specification. Technical report, Sun Microsystems, Inc. (2005)
Altenkirch, T., McBride, C., Morris, P.: Generic programming with dependent types. In: Backhouse, R., Gibbons, J., Hinze, R., Jeuring, J. (eds.) Spring School on Datatype-Generic Programming. LNCS, vol. 4719. Springer, Berlin (2007)
Atkey, R.: Parameterised notions of computation. In: Proceedings of the Workshop on Mathematically Structured Functional Programming (2006)
Chakravarty, M.M.T., Keller, G., Lechtchinsky, R., Pfannenstiel, W.: Nepal—nested data-parallelism in Haskell. In: Euro-Par 2001: Parallel Processing, 7th International Euro-Par Conference. LNCS, vol. 2150 (2001)
Chakravarty, M.M.T., Leshchinskiy, R., Jones, S.P., Keller, G., Marlow, S.: Data parallel Haskell: a status report. In: Proceedings of the 2007 Workshop on Declarative Aspects of Multicore Programming (2007)
Chamberlain, B.L., Choi, S.-E., Lewis, E.C., Lin, C., Snyder, L., Weathersby, D.: ZPL: a machine independent programming language for parallel computers. Softw. Eng. 26(3) (2000)
Chamberlain, B., Deitz, S., Hribar, M.B., Wong, W.: Chapel. Technical report, Cray Inc. (2005)
Charles, P., Grothoff, C., Saraswat, V., Donawa, C., Kielstra, A., Ebcioglu, K., von Praun, C., Sarkar, V.: X10: an object-oriented approach to non-uniform cluster computing. In: OOPSLA ’05 (2005)
Grothoff, C., Palsberg, J., Saraswat, V.: Safe arrays via regions and dependent types. doi:10.1.1.98.8038
Grothoff, C., Palsberg, J., Saraswat, V.: A type system for distributed arrays. Unpublished draft
Hudak, P.: Building domain-specific embedded languages. ACM Comput. Surv. 28 (1996)
Liblit, B., Aiken, A.: Type systems for distributed data structures. In: POPL ’00: Proceedings of the 27th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 199–213 (2000)
Löh, A.: lhs2TeX. http://people.cs.uu.nl/andres/lhs2tex/
McKinna, J., Wright, J.: A type-correct, stack-safe, provably correct, expression compiler in Epigram. J. Funct. Program. doi:10.1.1.105.4086
Nordström, B., Petersson, K., Smith, J.M.: Programming in Martin-Löf’s Type Theory: An Introduction. Oxford University Press, London (1990)
Norell, U.: Towards a practical programming language based on dependent type theory. PhD thesis, Chalmers University of Technology (2007)
Nystrom, N., Saraswat, V., Palsberg, J., Grothoff, C.: Constrained types for object-oriented languages. In: OOPSLA ’08: Proceedings of the 23rd ACM SIGPLAN Conference on Object-Oriented Programming Systems Languages and Applications, pp. 457–474 (2008)
Oury, N., Swierstra, W.: The power of Pi. In: ICFP ’08: Proceedings of the 13th ACM SIGPLAN International Conference on Functional Programming (2008)
Jones, S.P. (ed.): Haskell 98 Language and Libraries—The Revised Report. Cambridge University Press, Cambridge (2003)
Jones, S.P., Vytiniotis, D., Weirich, S., Washburn, G.: Simple unification-based type inference for GADTs. In: ICFP ’06: Proceedings of the 11th ACM SIGPLAN International Conference on Functional Programming (2006)
Scholz, S.-B.: Single assignment C—efficient support for high-level array operations in a functional setting. J. Funct. Program. 13(6), 1005–1059 (2003)
Swierstra, W.: A functional specification of effects. PhD thesis, University of Nottingham (2009)
Swierstra, W., Altenkirch, T.: Beauty in the beast: a functional semantics of the awkward squad. In: Proceedings of the ACM SIGPLAN Haskell Workshop (2007)
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
Open Access This is an open access article distributed under the terms of the Creative Commons Attribution Noncommercial License (https://creativecommons.org/licenses/by-nc/2.0), which permits any noncommercial use, distribution, and reproduction in any medium, provided the original author(s) and source are credited.
About this article
Cite this article
Swierstra, W. More dependent types for distributed arrays. Higher-Order Symb Comput 23, 489–506 (2010). https://doi.org/10.1007/s10990-011-9075-y
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10990-011-9075-y