JuliaCN 2021 冬季会议

作者: @johnnychen94
已发布至:微信公众号

会议时间:12月10日-12月12日 每晚 19:00-23:00 (北京时间)

B站 直播间:哔哩哔哩直播,二次元弹幕直播平台

腾讯会议 ID:766 6788 1722 (或直接访问 https://meeting.tencent.com/dm/DwANC6n6TExK


在科研群体中,高级语言(Python、R、Matlab)受欢迎的最主要原因是因为人们使用他们进行编码和建模的效率比较高,然而它们并不能达到低级语言 (C/C++, Fortran) 的执行效率。这就产生了所谓的 “两语言问题”:首先在一门高级语言上进行建模和概念验证,当对性能感到不满意时将性能瓶颈有关的代码在低级语言上重写,然后再写一些从低级语言到高级语言的接口代码。两语言问题的典型的例子有矩阵计算、排序、图论算法等。

“两语言问题”之所以是一个问题,是因为:1) 除非放弃抵抗,大部分人迟早都会遇到需要自己去一门快的语言上亲自给出一个高效实现的需求,2)并不是所有人对高级语言和低级语言都具有同样程度的掌握和喜好,3)在低级语言上写代码非常耗时耗力,4)为了将另一门语言的代码接入进来需要写非常多的胶水代码,有时甚至比核心代码还要多很多。

在这些高级语言中,人们使用了大量的技巧来绕过两语言问题,例如,“向量化代码” 被广泛使用以至于人们将这作为一项性能加速的 “真理”,然而实际上这仅仅只是一种性能上的妥协:向量化代码之所以快是因为它以外部调用的形式将代码的真正执行放到了一门高效的低级语言上,代价是更高的内存需求以及更晦涩的向量化代码。

可以说 Julia 是第一个解决了两语言问题的编程语言:在 2017 年,Julia 达到超过 1 Petaflop 算力这一目标进入了 Petaflop 俱乐部,除此之外达到这个目标的语言仅有 C/C++/Fortran. 在 2020-2021年,Julia 在编程语言排行榜中占 20名左右,在世界范围内的使用预计占 MATLAB 的 50%.

随着 Julia 以及 Julia 在国内的生态逐渐发展,我们希望有更多的人能够了解和喜欢上这门语言,我们希望中文社区能够出现更多的 Julia 开发者,我们也希望国内的学术圈和企业能够有更多人尝试使用 Julia 处理实际问题。虽然我们只是一个松散的开源社区,但我们的贪婪与 Julia 一样。

为此,我们以盼望的心组织了这次 Julia 中文社区的交流会议,希望你会感兴趣,也希望你在这里找到志同道合的朋友!

12月10日

Julia 社区、包注册以及镜像介绍

时间:19:00 - 19:20

类型:Report

报告人:陈久宁,华东师范大学数学科学学院博士生,Julia 中文社区的主要成员,是 GSoC/OSPP 编程培训项目的 Julia 导师,他同时也是Julia 一键安装工具 jill.py 以及镜像工具 StorageMirrorServer.jl 的作者

简介:这个报告将会介绍四个基本内容:Julia 社区以及 Julia 中文社区的基本情况、OSPP/GSoC 编程培训项目、Julia 包注册的基本流程和注意事项、以及 Julia 在国内的镜像站和使用方式。

目标听众:所有希望了解 Julia 生态及其基础设施的用户

用 Julia 实现非公理化推理系统

时间:19:20 - 19:35

类型:Workshop

报告人:孙常新,AGI科研人

简介:该报告将先简单介绍一下一个AGI模型–非公理化推理系统(NARS),然后介绍如何用Julia来实现它的一部分,并且会将Julia版本和Java版本的代码做个对比以凸显Julia给系统设计带来的高效灵活与代码可读性。

目标听众:所有对AGI感兴趣的朋友,希望大家能了解Julia设计复杂系统所带来的高效和简洁

WordCloud.jl - 用julia生成漂亮的词云

时间:19:35 - 20:05

类型:Workshop

报告人:郭勇智

简介:词云是一种常见于媒体及广告中的文本可视化方式。WordCloud.jl是一个纯julia实现的词云生成工具,可以生成各种风格的定制化词云。WordCloud.jl采用了完全不同的布局算法,这使得它比其它的词云工具更为灵活、高效和精确。Julia语言本身的高效性和抽象性是这一算法得以实现的不可或缺的因素。WordCloud.jl 的作者郭勇智将在这里介绍包的使用方式以及其背后的一些设计逻辑。

目标听众:对文本可视化或NLP感兴趣的人群

Julia机器学习入门教程

时间:20:05 - 20:35

类型:Tutorial

报告人:胡晓曼,华为MindSpore运营总监,LF&AI 基金会Outreach委员会成员,中国电子学会专家库成员,TinyMS开源项目负责人,曾任汽车之家、百度深度学习算法及运营团队负责人

简介:本次议题将分享如何使用Julia进行机器学习初步入门,结合代码演示常用的机器学习入门案例

目标听众:对Julia感兴趣的入门算法工程师,尝试用Julia进行机器学习的工程师等

以并行和GPU更快一步

时间:20:55 - 21:40

类型:Tutorial

报告人:郭昊轩,西安交通大学核科学与技术学院的学生,目前在进行蒙特卡罗算法求解粒子输运问题程序包的开发并正在使用julia语言。

简介:在已经遵守了性能提示的情况下,程序的性能很可能还是不能达到足够的要求。此时,可以采用并行处理来进一步提升程序的运行速度。演讲中将介绍包括SIMD并行、异步、多线程并行、进程间并行和GPU异构运算的多种并行加速技术。

目标听众:希望竭尽所能让自己的运算更快的人呐,这里可能还有你所探求的魔法!

Julia 代码中的典型设计模式

时间:21:40 - 22:25

类型:Tutorial

报告人:陈久宁,华东师范大学数学科学学院博士生,Julia 中文社区主要成员,JuliaImages 核心开发者以及 JuliaLang 外部成员。

简介:由于多重派发的存在,Julia 语言的开发体验与其他语言完全不同。在这次报告中,陈久宁将总结他在 Julia 以及 JuliaImages 下的开发经验,通过展示具体的例子及背后的设计思路,来解释 Julia 下的各种典型设计模式和最佳实践。

目标听众:了解 Julia 基本语法并希望写出更具有 Julia 风格的代码的用户

12月11日

基于可逆计算的稀疏矩阵微分

时间:19:00 - 19:15

类型:Report

报告人:黎婕,复旦大学应用数学在读硕士生

简介:稀疏矩阵在科学计算中应用广泛,但是在Julia语言里面却没有很好的软件包实现对稀疏矩阵的自动微分,SparseADRules.jl使用可逆嵌入式语言NiLang.jl 通过对 Julia Base 里的稀疏矩阵操作的改写实现对其自动微分。此外,黎婕作为OSPP2021的参与学生,将分享项目申请经验以帮助更多在校学生了解、加入Julia社区。

目标听众:想要了解如何动手写一个基础的Julia库,以及想要了解OSPP活动和申请过程的同学

在Julia中轻松调用C接口

时间:19:15 - 19:30

类型:Report

报告人:曾富楠,同济大学在读本科生

简介:介绍Clang.jl 0.14将更新的新内容,包括便于定制输出内容的配置文件,以及今年在OSPP项目中新增加的功能,即对C中可变参数函数和位域的支持和导出C源码中(以doxygen排版的)注释。

目标听众:希望在Julia中调用外部库的人,可以了解到Julia对C接口的支持程度。

使用Julia实现前沿强化学习算法——基于ReinforcementLearning.jl

时间:19:30 - 20:00

类型:Report 录播

报告人:杨国钰,强化学习研究者

简介:本次报告中,杨国钰将会介绍如何使用 ReinforcementLearning.jl 库来运行和实现强化学习算法,并介绍自己参加2021年OSPP项目的经验。

目标听众:AI 和 Julia 爱好者

AlphaZero算法介绍以及AlphaZero.jl使用

时间:20:00 - 20:45

类型:Workshop 录播

报告人:谦谦君子,2010 年毕业于北京大学信息管理系;毕业后曾在酷我音乐、人人游戏、腾讯等互联网公司从事 Web 开发及游戏开发;2017 年创办漫极客科技,致力于探索人工智能在游戏中的应用;2019年底加入成都数字天空, 负责组建GameAI团队。

简介:AlphaGo击败李世石让大家见识了深度强化学习的强大, 然后DeepMind将AlphaGo一路升级到AlphaZero, 一套算法打遍围棋、象棋等各种游戏, 惊艳至极。此次会议谦谦君子将给大家简要介绍AlphaZero算法, 并讲解使用AlphaZero.jl过程中遇到的一些坑, 带大家动手用AlphaZero.jl训练一个五子棋AI, 大家可以在此基础上快速训练自己的AI模型。

目标听众:对强化学习、AlphaZero、棋类AI感兴趣的同学,听完过后应该可以自己动手训练一个棋类游戏AI。

深入理解 Distributed.jl

时间:21:05 - 21:50

类型:Report

报告人:田俊,软件开发工程师,ReinforcementLearning.jl核心开发者,2016年硕士毕业于中科院自动化所,现就职于微软,主要从事自然语言处理相关工作。

简介:Distributed.jl是Julia中用于分布式计算的标准库,本次演讲将带领大家深入学习该库的设计思想和实现细节,力求听完本次演讲之后,大家能熟练掌握Distributed.jl的使用技巧,并进一步熟悉如何基于Distributed.jl做进一步的扩展。

目标听众:适合希望使用Julia做分布式计算的观众

基于 Turing.jl 的概率编程实践

时间:21:50 - 22:20

类型:Tutorial 录播

报告人:徐锴

简介:Turing.jl 是一个基于 Julia 的概率编程的库:用户可以通过简洁的语法实现概率建模并且用 Turing.jl 自带的推断算法实现自动推断。这个报告将会以主题模型 (topic model) 为例,介绍如何使用 Turing.jl 来实现 LDA 及其变种,从文本中抽取主题。

目标听众:想学习如何使用 Turing.jl 进行概率建模的用户

OMEinsum - 满足你对张量运算所有的期待

时间:22:20 - 22:50

类型:Tutorial 录播

报告人:刘金国,哈佛大学物理博士后

简介:OMEinsum 这个库包含了爱因斯坦求和记号函数,它有完整测试过的自动微分,范型编程以及GPU运算支持。同时会介绍基于它开发的OMEinsumContractionOrders,里面包含了相关缩并顺序优化。

目标听众:目标听众是用的到张量的人,包括很多普通大学生。希望他们收获一个好的工具链。

12月12日

邀请报告:Viral B. Shah

时间:19:00 - 19:20

类型:Report

报告人:Viral B Shah is an Indian computer scientist, best known for being a co-creator of the Julia programming language. He is the CEO of Julia Computing, which he co-founded with Alan Edelman, Jeff Bezanson, Stefan Karpinski, Keno Fischer, and Deepak Vinchhi.

Julia与积分微分方程

时间:19:20 - 19:35

类型:Workshop

报告人:张润发, 大连理工大学软件工程博士研究生,研究兴趣神经网络与偏微分方程,已发表16篇学术论文,其中包括AMC, CMA, ND 等 SCI 顶刊一作 8 篇。担任 Journal of Modern Industry and Manufacturing 编委,是 ND, PS, CJP, MPLB, MMAS, AMIS, JTUS, JACM, PJM 等20余期刊和 isaic 等会议审稿人。代表作品:求解非线性偏微分方程精确解析解的双线性神经网络方法(BNNM) Bilinear neural network method to obtain the exact analytical solutions of nonlinear partial differential equations and its application to p-gBKP equation - Nonlinear Dynamics

简介:本次报告中,张润发将介绍如何使用 NeuralPDE 来快速简洁地求解偏微分方程,积分微分方程。这将广泛的应用于数学物理,量子力学,电磁学,光学,等离子体等领域。

目标听众:数学物理领域的听众。希望我的演讲可以给大家提供一个比以往任何语言更加快速简洁求解方式。

Julia在等离子体数值模型数据处理中的应用

时间:19:35 - 19:50

类型:Report

报告人:周弘扬

简介:传统上,在计算机数值模拟的数据处理和绘图部分通常会使用动态的脚本语言,比如MATLAB, Python和IDL。但是随着数据量的增长以及分析手段的日渐复杂,单纯的解释性语言已经很难满足数据处理的需要。这里介绍的Vlasiator.jl是Julia在数据处理中的一次实践。Vlasiator是一个应用于空间领域的等离子体数值模型,主要用于研究宇宙中来自太阳的等离子体与地球磁场发生相互作用的物理过程。在当前的计算规模下,一次物理时间1分钟的模拟输出文件总和即能达到TB量级。Vlasiator.jl是一个全新开发的针对该数值模型的数据处理工具包,主要用于在大规模机群上处理模拟数据文件并绘制可出版级别的图像。我们将介绍该工具包的移植和重构过程,分享开发过程中遇到的问题和解决思路,以及展望未来可能进一步优化的路线。

目标听众:在科研领域对大规模数据处理有需求的相关从业人员

Julia在分数阶科学计算中的应用

时间:19:50 - 20:20

类型:Workshop 录播

报告人:曲庆宇,SciFracX创始人,FractionalDiffEq.jl,FractionalCalculus.jl,FractionalTransforms.jl作者

简介:曲庆宇将介绍如何使用FractionalDiffEq.jl,FractionalCalculus.jl以及FractionalTransforms.jl完成对分数阶微分方程的求解、分数阶微分和积分的计算,以及分数阶傅立叶变换的计算

目标听众:对分数阶领域感兴趣的人们 希望听众们对分数阶科学计算的算法进行深入了解,希望有更多感兴趣的人参与到包的开发中

用Julia求解微分方程

时间:20:20 - 20:50

类型:Workshop

报告人:高俊朋

简介:本次分享将介绍Julia求解微分方程的部分基础生态,主要重点将是常微分方程求解器的类型和构造,也会略微简介少量其他相关类型的微分方程,例如微分代数方程和一些含时偏微分方程。

目标听众:想尝试用Julia做微分方程方面的模拟的新人。可以期望从本次分享了解到常微分方程求解器的类型和构造,微分代数方程和常微分方程的不同,如何求解基础的含时PDE,以及如何利用GPU求解含时PDE。

Julia 图像处理入门

时间:21:10 - 21:55

类型:Tutorial

报告人:陈久宁,华东师范大学数学科学学院博士生,Julia 中文社区主要成员,JuliaImages 核心开发者以及 JuliaLang 外部成员。

简介:JuliaImages 是 Julia 下的图像处理工具箱,作为工具箱的核心维护者,陈久宁将在这次报告中介绍 Julia 下进行图像处理的一般流程和最佳实践。

目标听众:来自于其他语言的图像处理研究者和开发者,以及对图像处理感兴趣的 Julia 用户

OpenTelemetry.jl: 提升系统的可观测性

时间:21:55 - 22:35

类型:Report

报告人:田俊,软件开发工程师,ReinforcementLearning.jl核心开发者,2016年硕士毕业于中科院自动化所,现就职于微软,主要从事自然语言处理相关工作。

简介:利用Julia中的标准库Logging.jl以及ExtraLoggers.jl等库,我们可以很方便地在系统中打印log,从而方便debug,但是,在更复杂地系统中,特别是近年来流行的微服务框架中,仅仅依赖logging并不能很好地观测系统的运行状态。本次报告介绍的OpenTelemetry.jl是OpenTelemetry标准的Julia实现,提供了针对logging, tracing和metrics的完整支持,从而进一步方便用户观测系统的整体运行状况。

目标听众:本次演讲适合Julia应用系统的开发者

幺编译器:在量子硬件上解锁Julia

时间:22:35 - 23:05

类型:Report

报告人:罗秀哲 (Roger),加拿大滑铁卢大学和圆周率研究所物理学在读博士,是开源框架Yao及其相关生态的主要作者之一,也是Julia中文社区早期发起人之一和核心成员。Wittek Quantum Prize 2021获奖者。

简介:随着量子信息领域的快速发展,越来越多的软件和框架被开发出来。本次报告罗秀哲将介绍幺团队的新工作幺编译器(YaoCompiler)。幺编译器是一个Julia编译器扩展,它扩展了Julia的抽象解释器并提供了使用原生Julia语言编写SSA表示和QBIR表示的相关基础设施。它目前提供了基于ZX calculus和模板匹配的编译器优化。幺编译器提供了结合现代编程语言编程量子硬件的另一种可能,幺团队希望它将推进高级语言和编译器在量子信息领域的发展。

目标听众:对最新编译技术感兴趣或者对量子信息量子计算有兴趣的人

6 个赞

JuliaCN 2021 冬季会议回放:

2 个赞