http://x10.sourceforge.net/x10papers.shtml
1. X10
X10 is a programming language being developed by IBM at the Thomas J. Watson Research Center as part of DARPA's High Productivity Computing Systems(HPCS) program.
X10 is designed specifically for parallel programming. It is an "extended subset" of the Java programming language, strongly resembling it in most aspects, but featuring additional support for arrays and concurrency.
2. Overview
X10: Programming for hierarchical parallelism and non-uniform data access 의 Figure1 참조
* 'Place'가 language의 concept이다. place는 특정 조건 및 상태를 가리킨다. 그리고 이에 대응하여 activity(ex. thread)를 생성하게 되는데 Figure 1은 place, activity에 대한 resource를 어떤 구조로 관리하는지를 개략적으로 나타낸다.
3. Syntax
Clock, Atomic, When, Async와 같은 instruct이 제공된다. 주요 내용은 다음과 같다.
Async : 일반 thread와 같이 async환경으로 activity를 생성한다.
Clock: Activity내 flow에 대해서 각 단계별로 clock을 적용할 수 있다. 각 단계는 'next'라는 instruct로 구분된다. 동일한 clock instance가 적용되었을 때 해당 activity들은 각 단계를 함께 나아가게된다.
Atomic: 해당 routine이 수행될 때에는 마치 sequential flow와 같이 다른 activity들은 모두 blocking상태가 된다.