X10 '13Pub Date : 2013-06-20DOI: 10.1145/2481268.2481272
D. Grove
{"title":"A tutorial on X10 and its implementation","authors":"D. Grove","doi":"10.1145/2481268.2481272","DOIUrl":"https://doi.org/10.1145/2481268.2481272","url":null,"abstract":"This talk will present a high-level introduction to the X10 language and its implementation with the goal of ensuring a common base knowledge of X10 by all workshop attendees. The X10 language will be introduced primarily via code examples with a focus on X10's support for concurrency and distribution via the APGAS (Asynchronous Partitioned Global Address Space) programming model. The discussion of the X10 implementation will cover the structure of the X10 compiler and the X10 runtime system. The talk is designed to be interactive and will include time for questions and answers and general discussion.","PeriodicalId":406965,"journal":{"name":"X10 '13","volume":"37 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-06-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122290989","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
X10 '13Pub Date : 2013-06-20DOI: 10.1145/2481268.2481274
H. Bungartz, C. Riesinger, Martin Schreiber, G. Snelting, Andreas Zwinkau
{"title":"Invasive computing in HPC with X10","authors":"H. Bungartz, C. Riesinger, Martin Schreiber, G. Snelting, Andreas Zwinkau","doi":"10.1145/2481268.2481274","DOIUrl":"https://doi.org/10.1145/2481268.2481274","url":null,"abstract":"High performance computing with thousands of cores relies on distributed memory due to memory consistency reasons. The resource management on such systems usually relies on static assignment of resources at the start of each application. Such a static scheduling is incapable of starting applications with required resources being used by others since a reduction of resources assigned to applications without stopping them is not possible. This lack of dynamic adaptive scheduling leads to idling resources until the remaining amount of requested resources gets available. Additionally, applications with changing resource requirements lead to idling or less efficiently used resources. The invasive computing paradigm suggests dynamic resource scheduling and applications able to dynamically adapt to changing resource requirements.\u0000 As a case study, we developed an invasive resource manager as well as a multigrid with dynamically changing resource demands. Such a multigrid has changing scalability behavior during its execution and requires data migration upon reallocation due to distributed memory systems.\u0000 To counteract the additional complexity introduced by the additional interfaces, e. g. for data migration, we use the X10 programming language for improved programmability. Our results show improved application throughput and the dynamic adaptivity. In addition, we show our extension for the distributed arrays of X10 to support data migration.","PeriodicalId":406965,"journal":{"name":"X10 '13","volume":"27 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-06-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132073384","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
X10 '13Pub Date : 2013-06-20DOI: 10.1145/2481268.2481278
Mikio Takeuchi, D. Cunningham, D. Grove, V. Saraswat
{"title":"Java interoperability in managed X10","authors":"Mikio Takeuchi, D. Cunningham, D. Grove, V. Saraswat","doi":"10.1145/2481268.2481278","DOIUrl":"https://doi.org/10.1145/2481268.2481278","url":null,"abstract":"The ability to smoothly interoperate with other programming languages is an essential feature to reduce the barriers to adoption for new languages such as X10. Compiler-supported interoperability between Managed X10 and Java was initially previewed in X10 version 2.2.2 and is now fully supported in X10 version 2.3. In this paper we describe and motivate the Java interoperability features of Managed X10. For calling Java from X10, external linkage for Java code is explained. For calling X10 from Java, the current implementation of Java code generation is explained.\u0000 An unusual aspect of X10 is that, unlike most other JVM-hosted languages, X10 is also implemented via compilation to C++ (Native X10). The requirement to support multiple execution platforms results in unique challenges to the design of cross-language interoperability. In particular, we discovered that a single top exception type that covers all exception types from source and all target languages is needed as a native type of the source language for portable exception handling. This realization motivated both minor changes in the X10 language specification and an extensive redesign of the X10 core class library for X10 2.3.","PeriodicalId":406965,"journal":{"name":"X10 '13","volume":"38 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-06-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121102266","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
X10 '13Pub Date : 2013-06-20DOI: 10.1145/2481268.2481277
Jeeva Paudel, O. Tardieu, J. N. Amaral
{"title":"Hybrid parallel task placement in X10","authors":"Jeeva Paudel, O. Tardieu, J. N. Amaral","doi":"10.1145/2481268.2481277","DOIUrl":"https://doi.org/10.1145/2481268.2481277","url":null,"abstract":"This paper presents a hybrid parallel task-placement strategy that combines work stealing and work dealing to improve workload distribution across nodes in distributed shared-memory machines. Existing work-dealing-based load balancers suffer from large performance penalties resulting from excessive task migration and from excessive communication among the nodes to determine the target node for a migrated task. This work employs a simple heuristic to determine the load status of a node and also to detect a good target for migration of tasks.\u0000 Experimental evaluations on applications chosen from the Cowichan and Lonestar suites demonstrate a speedup, with the proposed approach, in the range of 2% to 16% on a cluster of 128 cores over the state-of-the-art work-stealing scheduler.","PeriodicalId":406965,"journal":{"name":"X10 '13","volume":"16 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-06-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127787755","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
X10 '13Pub Date : 2013-06-20DOI: 10.1145/2481268.2481276
O. Tardieu
{"title":"X10 at scale","authors":"O. Tardieu","doi":"10.1145/2481268.2481276","DOIUrl":"https://doi.org/10.1145/2481268.2481276","url":null,"abstract":"X10 is an open-source imperative concurrent object-oriented programming language developed by IBM Research to ease the programming of scalable concurrent and distributed applications. In this talk, I will report and reflect on our experience running HPC application kernels and graph algorithms implemented in X10 on a Petaflop IBM Power 775 supercomputer (with up to 55,000 Power7 cores). I will discuss design and implementation decisions that make it possible to achieve competitive performance at scale while retaining X10's productivity. In particular, I'll describe our implementation of the Unbalanced Tree Search benchmark (UTS), which illustrates X10's handling of irregular parallelism.","PeriodicalId":406965,"journal":{"name":"X10 '13","volume":"28 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-06-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125347256","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
X10 '13Pub Date : 2013-06-20DOI: 10.1145/2481268.2481275
S. Khaitan, J. McCalley
{"title":"Achieving load-balancing in power system parallel contingency analysis using X10 programming language","authors":"S. Khaitan, J. McCalley","doi":"10.1145/2481268.2481275","DOIUrl":"https://doi.org/10.1145/2481268.2481275","url":null,"abstract":"Due to recent trends of expansion and deregulation in power systems, the stress level of power systems has increased which has highlighted the importance of conducting stability analysis. Further, due to increasing emphasis on analyzing N -- k contingency, the number of contingencies which are required to be analyzed has greatly increased. To address this challenge, researchers have used parallel computing resources, however, in absence of efficient load-balanced scheduling, parallelization leads to wastage of computation resources. In this paper, we present an approach to parallelize power system contingency analysis using X10 language. We discuss the features of X10 which enable us to achieve high performance gains. Our approach is evaluated using a large 13029-bus power systems. We parallelize contingency analysis over 2, 4, 8 and 16 threads and use efficient work-stealing algorithm to achieve load-balancing.\u0000 The results have shown that our approach scales effectively with the number of cores and provides large computational gains. Also, it outperforms a conventional scheduling technique, namely master-slave scheduling.","PeriodicalId":406965,"journal":{"name":"X10 '13","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-06-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130502489","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
X10 '13Pub Date : 2013-06-20DOI: 10.1145/2481268.2481273
Vineet Kumar, L. Hendren
{"title":"First steps to compiling Matlab to X10","authors":"Vineet Kumar, L. Hendren","doi":"10.1145/2481268.2481273","DOIUrl":"https://doi.org/10.1145/2481268.2481273","url":null,"abstract":"Matlab is a popular dynamic array-based language commonly used by students, scientists and engineers, who appreciate the interactive development style, the rich set of array operators, the extensive builtin library, and the fact that they do not have to declare static types. Even though these users like to program in Matlab, their computations are often very compute-intensive and are potentially very good applications for high-performance languages such as X10.\u0000 To provide a bridge between Matlab and X10, we are developing MiX10, a source-to-source compiler that translates Matlab to X10. This paper provides an overview of the initial design of the MiX10 compiler, presents a template-based specialization approach to compiling the builtin Matlab operators, and provides translation rules for the key sequential Matlab constructs with a focus on those which are challenging to convert to semantically-equivalent X10. An initial core compiler has been implemented, and preliminary results are provided.","PeriodicalId":406965,"journal":{"name":"X10 '13","volume":"93 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-06-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131800060","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}