找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 80|回复: 0

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

[复制链接]
发表于 2023-6-11 22:28:49 | 显示全部楼层 |阅读模式 来自 中国–浙江–温州–平阳县
  太极编程语言是一种主要面向以并行for循环+命令式编程为主体的编程语言,利用多核处理器并行编程、贴近处理器和高性能程序员编程习惯的命令式,融入到太极(taichi)语言后,统统成了一个并行for循环,简洁明了。所以,for循环简直就是灵魂的存在。


  并行嘛,怎能简简单单学Python代码一样。少不了要for循环,这几乎是一个必不可少的环节了。虽然说太极语言潜入了python,使得编写样式也象是Python,不过还是有不同的,比如这次学习的for循环。太极编程语言的循环——更具体一点是for循环,算是别具一格,与众不同。它分为年中循环形式:区间for循环,结构for循环。


  不管哪种,正如文章开头说的,太极编程面向以并行for循环,所以它其实是并行执行的循环,这个和平常我们熟悉的有点点不一样。


  在官方教学展示一段for循环代码时称,类似for i in range(10)这样的循环,在Python中和在 ti.kernel中并不一样。比如Python代码中这样会按顺序输出从0到9,而在太极kernel中由于是并行,可能输出不是从0到9。不过机智客在Ubuntu系统上多次测试这段代码,结果就是,不管是Python中还是太极的kernel中其实都一样,于是就不懂了。


  再分开聊两种循环形式,其中区间for循环和我们熟悉的诸如Python的for循环没什么区别。你循环套循环,也都可以,可以按照Python的写法编程。而结构for循环则很不同。


  按照官方的说法,它是Taichi稀疏计算(Sparse computation(WIP))的关键。它只会遍历稀疏张量中的活跃元素。对于稠密张量而言,所有元素都是活跃元素。在遍历张量元素的时候很有用。就类似于我们在做深度学习的时候处理张量。


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

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

▶专业解决各类DiscuzX疑难杂症、discuz版本升级 、网站搬家 和 云服务器销售!▶有偿服务QQ 860855665 更多精品应用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )|网站地图

GMT+8, 2026-2-15 16:42 , Processed in 0.200911 second(s), 9 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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