找回密码
 加入怎通
查看: 486|回复: 0

太极编程语言别具一格的for循环,还是并行的

[复制链接]
3065236092@qq.c 发表于 2023-06-11 22:29:09 | 显示全部楼层 |阅读模式
  太极编程语言是一种主要面向以并行for循环+命令式编程为主体的编程语言,利用多核处理器并行编程、贴近处理器和高性能程序员编程习惯的命令式,融入到太极(taichi)语言后,统统成了一个并行for循环,简洁明了。所以,for循环简直就是灵魂的存在。

) B7 R) W9 q" C! ~" S, v# N
  并行嘛,怎能简简单单学Python代码一样。少不了要for循环,这几乎是一个必不可少的环节了。虽然说太极语言潜入了python,使得编写样式也象是Python,不过还是有不同的,比如这次学习的for循环。太极编程语言的循环——更具体一点是for循环,算是别具一格,与众不同。它分为年中循环形式:区间for循环,结构for循环。
) l% A; t* V6 b2 k: c2 S( ~
  不管哪种,正如文章开头说的,太极编程面向以并行for循环,所以它其实是并行执行的循环,这个和平常我们熟悉的有点点不一样。

* v8 n1 Q9 q* K% y/ c
  在官方教学展示一段for循环代码时称,类似for i in range(10)这样的循环,在Python中和在 ti.kernel中并不一样。比如Python代码中这样会按顺序输出从0到9,而在太极kernel中由于是并行,可能输出不是从0到9。不过机智客在Ubuntu系统上多次测试这段代码,结果就是,不管是Python中还是太极的kernel中其实都一样,于是就不懂了。
; a4 L2 a: C4 q! L
  再分开聊两种循环形式,其中区间for循环和我们熟悉的诸如Python的for循环没什么区别。你循环套循环,也都可以,可以按照Python的写法编程。而结构for循环则很不同。

6 f2 {" s: ~4 [. ~$ k2 _% C1 d
  按照官方的说法,它是Taichi稀疏计算(Sparse computation(WIP))的关键。它只会遍历稀疏张量中的活跃元素。对于稠密张量而言,所有元素都是活跃元素。在遍历张量元素的时候很有用。就类似于我们在做深度学习的时候处理张量。

0 v0 S, t$ R, t, S4 {4 R
  taichi不过结构for循环只能用于内核的最外层作用域,同样是作用域的循环并行执行,而这个并行循环并不支持break语句。上面这个似乎很抽象是吧。其实机智客看文档的理解就是,for循环是函数下的开头语句,你不能用判断或者别的语句放在循环代码之前,这个作用整个外层作用域的for循环,不接受直接break,除非你又嵌套了其他for循环,才能在其他循环里使用break。看官方文档的说明,这两种for循环的写法,反倒是没有形式上的不同。所以乍一看,容易让人犯迷糊,也没什么。taichi https://taichi-lang.cn/
; v) o( W, u/ k4 c
回复

使用道具 举报

    您需要登录后才可以回帖 登录 | 加入怎通

    本版积分规则

    QQ|手机版|小黑屋|网站地图|真牛社区 ( 苏ICP备2023040716号-2 )

    GMT+8, 2026-4-2 20:25 , Processed in 1.301596 second(s), 50 queries , Gzip On.

    免责声明:本站信息来自互联网,本站不对其内容真实性负责,如有侵权等情况请联系420897364#qq.com(把#换成@)删除。

    Powered by Discuz! X3.5

    快速回复 返回顶部 返回列表