Abstract: 本文介绍如何在命令行中开启、使用、退出Julia,如何执行文件,以及执行Julia时候的可选选项(参数列表)
Keywords: Julia,Julia使用,Julia命令行,Julia执行文件
开始使用Julia
本文我们来学习Julia的几种用法,包括便捷的终端交互,以及对于复杂功能的文件执行。
终端使用Julia(交互模式)
在终端启动Julia比较简单,上文我们完成了Julia的安装,并在Mac下完成了命令行下启动的设置,那么我们可直接在命令行提示符后输入julia
完成Julia环境的启动(交互模式),如果出现下图,表示启动成功了。
在交互模式下执行命令
在Julia的命令提示符后输入1 + 2
后回车,就会显示计算结果。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 julia
_
_ _ _(_)_ | Documentation: https://docs.julialang.org
(_) | (_) (_) |
_ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 1.0.0 (2018-08-08)
_/ |\__'_|_|_|\__'_| |
|__/ |
1 + 2
3
ans
3
ans
变量表示上次计算的结果,如果在这个ans
下再次输入ans
并回车,显示结果是:
1 | 1 + 2 |
注意:ans
只能在交互模式下使用
在交互模式下执行文件
如果你有一个julia文件 file.jl
,里面写的是计算过程:1
1+3
你可以在交互模式下执行这个文件,使用命令 include(“file.jl”)
1 | julia |
退出交互模式
退出交互模式回到终端有两种方法:
CTRL-d
linux和windows下同时按下ctrl
键和d
键- 输入
exit()
终端执行Julia文件
在终端下执行Julia文件的方式和其他脚本的执行方式类似:
1 | julia script.jl arg1 arg2... |
如果我们执行上面我们说到的 file.jl
那么在终端下的执行结果如下:1
2 julia file.jl
没有显示结果,因为我们在文件中只有 1+3
这条指令,而没有要求他输出什么,在交互模式下,程序自动显示计算结果,但是在终端下执行脚本,只执行脚本中的命令,而不会自己显示什么。
接着我们编辑另一个文件script.jl
,内容如下:1
2
3
4println(PROGRAM_FILE);
for x in ARGS;
println(x);
end
然后我们加上参数,这里是输入给脚本的参数 —— arg1 arg2 …
1
2
3
4
5 julia script.jl foo bar
script.jl
foo
bar
这里的三部分分别是 julia
(程序名,用于在终端中启动程序,类似于python脚本运行前的python,sh等)、 script.jl
(脚本文件名) 以及 foo bar
(输入脚本的参数)。
Julia的参数
在执行脚本时我们给脚本了两个个参数(foo bar
),同时,我们也可以给julia多个参数(上面的例子中 script.jl foo bar
是Julia程序的一个参数 ),加参数方式是在多个参数中间用 –
划分 ,例如上面的例子可以加上如下参数1
julia --color=yes -O --script.jl foo bar
julia程序包含两个参数,分别是:
–color=yes -O
–script.jl foo bar
script.jl 包含两个参数:
foo
bar
Julia 的并行模式(本机和集群)
Julia可以以并行模式启动,启动参数是 -p
或者 –machine-file
-p n
将会启动n个工作进程–machine-file file
将会按照file中记录的机器地址,启动对应机器上的任务。–machine-file
模式注意以下要求:
- 这些机器的登录方式必须是
ssh
无密码登录(不需要输入手工输入密码,而是通过ssh 秘钥登录) - 这些机器上的Julia安装目录必须和当前执行命令的主机位置相同
file
中的每一条机器记录格式如下[count*][user@]host[:port] [bind_addr[:port]]
count *
是节点要执行的工作进程数量(类似本机的-p n)user
默认是当前用户port
是标准ssh的端口号,默认是1bind-to bind_addr[:port]
是其他机器使用的IP地址和端口号,可以用来连接到本机。
Julia更多执行参数列表
Julia的更多参数列表如下,执行方法:1
julia [switches] -- [programfile] [args...]
参数列表:
Switch | Description |
---|---|
-v , –version | Display version information |
-h , –help | Print this message |
-J , –sysimage <file> | Start up with the given system image file |
-H , –home <dir> | Set location of julia executable |
–startup-file={yes|no} | Load ~/.julia/config/startup.jl |
–handle-signals={yes|no} | Enable or disable Julia’s default signal handlers |
–sysimage-native-code={yes|no} | Use native code from system image if available |
–compiled-modules={yes|no} | Enable or disable incremental precompilation of modules |
-e , –eval <expr> | Evaluate <expr> |
-E , –print <expr> | Evaluate <expr> and display the result |
-L , –load <file> | Load <file> immediately on all processors |
-p , –procs {N|auto } | Integer value N launches N additional local worker processes; auto launches as many workers as the number of local CPU threads (logical cores) |
–machine-file <file> | Run processes on hosts listed in <file> |
-i | Interactive mode; REPL runs and isinteractive() is true |
-q , –quiet | Quiet startup: no banner, suppress REPL warnings |
–banner={yes|no|auto} | Enable or disable startup banner |
–color={yes|no|auto} | Enable or disable color text |
–history-file={yes|no} | Load or save history |
–depwarn={yes|no|error} | Enable or disable syntax and method deprecation warnings (error turns warnings into errors) |
–warn-overwrite={yes|no} | Enable or disable method overwrite warnings |
-C , –cpu-target <target> | Limit usage of cpu features up to <target>; set to help to see the available options |
-O , –optimize={0,1,2,3} | Set the optimization level (default level is 2 if unspecified or 3 if used without a level) |
-g , -g <level> | Enable / Set the level of debug info generation (default level is 1 if unspecified or 2 if used without a level) |
–inline={yes|no} | Control whether inlining is permitted, including overriding @inline declarations |
–check-bounds={yes|no} | Emit bounds checks always or never (ignoring declarations) |
–math-mode={ieee,fast} | Disallow or enable unsafe floating point optimizations (overrides @fastmath declaration) |
–code-coverage={none|user|all} | Count executions of source lines |
–code-coverage | equivalent to –code-coverage=user |
–track-allocation={none|user|all} | Count bytes allocated by each source line |
–track-allocation | equivalent to –track-allocation=user |
总结
本文介绍Julia基础的启动,以及并行模型,执行参数的选择等知识。