【Julia】开始使用Julia

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)
_/ |\__'_|_|_|\__'_| |
|__/ |


julia> 1 + 2
3

julia> ans
3

ans变量表示上次计算的结果,如果在这个ans下再次输入ans并回车,显示结果是:

1
2
3
4
5
6
7
8
julia> 1 + 2
3

julia> ans
3

julia> ans
3

注意:ans只能在交互模式下使用

在交互模式下执行文件

如果你有一个julia文件 file.jl,里面写的是计算过程:

1
1+3

你可以在交互模式下执行这个文件,使用命令 include(“file.jl”)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$julia
_
_ _ _(_)_ | Documentation: https://docs.julialang.org
(_) | (_) (_) |
_ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 1.0.0 (2018-08-08)
_/ |\__'_|_|_|\__'_| | Official https://julialang.org/ release
|__/ |

julia> include("file.jl")
4

julia>

退出交互模式

退出交互模式回到终端有两种方法:

  1. CTRL-d linux和windows下同时按下 ctrl 键和d
  2. 输入 exit()

终端执行Julia文件

在终端下执行Julia文件的方式和其他脚本的执行方式类似:

1
$ julia script.jl arg1 arg2...

如果我们执行上面我们说到的 file.jl那么在终端下的执行结果如下:

1
2
$ julia file.jl
$

没有显示结果,因为我们在文件中只有 1+3这条指令,而没有要求他输出什么,在交互模式下,程序自动显示计算结果,但是在终端下执行脚本,只执行脚本中的命令,而不会自己显示什么。
接着我们编辑另一个文件script.jl,内容如下:

1
2
3
4
println(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 模式注意以下要求:

  1. 这些机器的登录方式必须是ssh无密码登录(不需要输入手工输入密码,而是通过ssh 秘钥登录)
  2. 这些机器上的Julia安装目录必须和当前执行命令的主机位置相同
  3. file中的每一条机器记录格式如下
    • [count*][user@]host[:port] [bind_addr[:port]]
      • count *是节点要执行的工作进程数量(类似本机的-p n)
      • user 默认是当前用户
      • port 是标准ssh的端口号,默认是1
      • bind-to bind_addr[:port] 是其他机器使用的IP地址和端口号,可以用来连接到本机。

Julia更多执行参数列表

Julia的更多参数列表如下,执行方法:

1
julia [switches] -- [programfile] [args...]

参数列表:

SwitchDescription
-v, –versionDisplay version information
-h, –helpPrint 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>
-iInteractive mode; REPL runs and isinteractive() is true
-q, –quietQuiet 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-coverageequivalent to –code-coverage=user
–track-allocation={none|user|all}Count bytes allocated by each source line
–track-allocationequivalent to –track-allocation=user

总结

本文介绍Julia基础的启动,以及并行模型,执行参数的选择等知识。

Reference

  1. https://docs.julialang.org/en/v1/manual/getting-started/

原文地址: https://face2ai.com/Julia-Lang-2-Getting-Started

0%