尝试Chapel第一课:使用Windows建立chapel系统。
目前,Chapel系统还处于开发阶段,它的0.9版是测试版。目前其版本可以在linux上运行。据说其支持GP与OO。边学边看吧。
我只有一个windows的操作系统。要想在上面跑,需要装一个linux环境:cygwin
1. Cygwin的安装
如何安装cygwin这里不多说了(很多网站都有介绍),需要注意的是,不能使用default安装——由于要对chapel包进行编译等操作,需要安装额外的包:( 为了避免麻烦,将cygwin所有的包都安装到其中:
如上图所示:通过单击将default修改为install吧。然后就是漫长的等待...(如果感觉时间长,也可以只将Devel修改为Install)。
安装完毕后,可以在安装目录中找到一个bat文件,运行则弹出cygwin的窗口可以输入linux命令。
2. chapel的下载与解压缩
第一次运行cygwin,该程序会根据目前的windows系统账号建立一个cygwin/home/Username的目录。例如,我的电脑登陆名为liwei,cygwin第一次运行后会建立一个/home/liwei的目录。后面的操作主要在这个目录中进行。
从chapel网站提供的sourceforge上下载chapel 0.9的安装包并下载——得到一个chapel-v0.9.tar.gz包。把这个包放到cygwin/home/liwei下。
之后在cygwin中使用命令
gunzip chapel-v0.9.tar.gz
与命令:
tar vxf chapel-v0.9.tar
解压生成chapel目录。生成后的结果如下图所示:
注意根据chapel的文档,这个解压缩的工作不能使用winzip等工具。
3. 环境配制与编译器的安装
在windows的环境变量中加入如下内容:
变量名 CHPL_HOME
变量值 /home/liwei/chapel
这是chapel工作过程中所需要的环境变量。之后重新运行cygwin。在其中输入 $CHPL_HOME 可以看到该变量被解释成chapel的安装目录: /home/liwei/chapel
此时需要首先编译chapel的编译器。在 ~/chapel 目录下使用如下的命令:
./util/setchplenv.bash
这将对编译环境进行设置。设置结果如下图:
之后在$CHPL_HOME目录下运行make进行编译,然后是等待...
编译完成后,如果没有问题,会生成一个bin目录与一个lib目录。其中分别包含了chapel编译器chpl.exe与一些库(lib)文件。为了方便起见,将chpl.exe拷贝到cygbin/bin的目录下,这样可以在cygwin中的任何位置调用chpl.
可以通过调用chpl --help来看一下相应的编译说明:
Usage: chpl [flags] [source files]
Compilation Trace Options:
--print-commands Print system commands
--print-passes Print compiler passes
Code Size Options:
--count-tokens Count tokens
--print-code-size Print code size statistics
Parallelism Control Options:
--[no-]local Target one [many] locale[s]
--[no-]serial [Don't] Serialize parallel constructs
--[no-]serial-forall [Don't] Serialize forall constructs
后面还有一堆,这里就不罗列了。
4. 编译并运行一个chapel程序
在/home/liwei下建立一个test的目录。用来测试
chapel的example目录中有一系列的示例程序。其中,以chpl结尾的是源码,以good结尾的是运行后的结果。这里使用其中的hello.chpl作为例子说明如何编译并运行:
在cygwin中输入命令:
chpl -o /home/liwei/test/hello.exe /home/liwei/chapel/examples/hello.chpl
则会在测试目录中输入一个hello.exe,直接在cygwin中输入
/home/liwei/test/hello.exe
则运行程序输出hello world!
注意,由于所有的操作都是在cygwin上进行的。因此生成的chpl.exe与hello.exe都可以在dos环境下直接使用。