开源软件供应链点亮计划——暑期2021 Julia中文社区

开源软件供应链点亮计划——暑期2021 Julia中文社区

大家好~

今年夏天,Julia中文社区将首次加入 开源软件供应链点亮计划——暑期2021 21,Julia中文社区将会陆续添加项目提案,欢迎大家关注并转发。

此外,如果你是Julia社区中某个项目的核心开发者,也欢迎你在该项目下提交你的提案,具体流程可在原帖与作者联系。

该项目的时间节点:

https://summer.iscas.ac.cn/#/howitworks 10

学生参与该项目的一些常见问题:

https://summer.iscas.ac.cn/help/student/ 9

有问题请在Julia中文社区回帖,地址为:

https://discourse.juliacn.com/t/topic/5168

项目列表

1. Julia 官方文档翻译

目前Julia中文文档位于 https://github.com/JuliaCN/JuliaZH.jl 2 ,从v1.3发布之后之后,该文档已经有一段时间没有更新了,本项目希望能将最新的英文文档在已有的基础上更新,同时完善自动化部署的流程。

项目产出要求:

将Julia中文翻译文档更新至与英文v1.6同步

完善自动化部署流程

项目技术要求:

熟悉文档翻译

对Julia编程感兴趣

2. 基于可逆计算的稀疏矩阵求导

Sparse matrices are extensively used in scientific computing, however there is no automatic differentiation package in Julia yet to handle sparse matrix operations yet. This project will utilize the reversible embedded domain-specific language NiLang.jl to differentiate sparse matrix operations by re-writing the sparse functions in Julia base in a reversible style. We will port the generated backward rules to ChainRules.jl as an extension, where ChainRules.jl is the most popular Julia package providing backward rules for automatic differentiation packages. In fact, NiLang.jl has been proven to differentiate some sparse matrix operations efficiently: https://nextjournal.com/giggle/how-to-write-a-program-differentiably 2 In this project, you are supposed to systematically rewrite the sparse matrix functions in Julia base, which can be challenging but definitely doable. Meanwhile, you will have a chance to learn a reversible programming language!

项目产出要求:

一个开源的Julia软件包

超过80的Test coverage

一个简单的展示用例子

项目技术要求:

覆盖基础稀疏矩阵函数的微分规则

Julia 语言

3. 添加高性能图像处理算法

organization.Images.jl 是 Julia 下的一个图像处理工具箱,目前它提供了一些底层的图像处理支持来满足开发者的需求,不过目前还依然存在很多图像处理细分领域的算法没有得到复现。根据工作量及难度的不同,项目申请者需要提供一至三个图像处理算法的复现及对应的优化工作,并将其添加到 JuliaImages 组织下。

项目产出要求:

实现新的图像处理算法

与其他框架的算法进行性能比较

项目技术要求:

了解图像处理算法

对性能优化有一定了解

了解 Julia 语言

4. 完善 ImageMagick 的 Julia 接口

ImageMagick is a widely used low-level image io and processing library, it also has its Julia frontend ImageMagick.jl, which is used widely in the entire Julia ecosystem. However, ImageMagick.jl project is not under well-maintained; it lacks of the necessary documentation and has few test coverage. The applicant needs to revisit and upgrade the ImageMagick.jl codebase so as to 1) fix legacy ImageMagick.jl issues2) improve the reliability and3) port more ImageMagick features to ImageMagick.jl. A complete reference documentation for ImageMagick.jl is also needed.

项目产出要求:

more test coverage

fix legacy issues

add documentation

(optional) port more functionalities

项目技术要求:

familiar with Linux, C, and cross-compiling

knows Julia

5. Wide-range JuliaImages demos and missing functionalities

For new or occasional users, JuliaImages would benefit from a large collection of complete worked examples organized by topic. While the current documentation contains many “mini-demos,” they are scattered; an organized page would help users quickly find what they need. We have set up a landing page, but many more demos are needed. Scikit-image is one potential model.

项目产出要求:

add more demos

(Preferred) new missing functionalities

(Optional) improve the demo build tool

项目技术要求:

familiar with Julia and JuliaImages

Good technical written in English

6. Implement Multi-Agent Reinforcement Learning Algorithms in Julia

强化学习领域的一些最新进展引领了人工智能的许多突破,一部分最新的深度强化学习算法已经在ReinforcementLearning.jl库中实现。不过在多智能体方面,目前只实现了一些CFR相关的算法。我们希望有更多的实现,包括MADDPG,COMA,NFSP, PSRO等。

项目产出要求:

At least two experiments are expected to be added into ReinforcementLearningZoo.jl.

The experiment of each algorithm can be run on GPU.

A technical report on how it is implemented and example usage.

项目技术要求:

Basic understanding of Julia and Flux.jl.

Some basic knowledge in Reinforcement Learning.

7. General improvement to Julia-C interoperability tools

Clang.jl is a Julia language interface for libclang: the stable, C-exported interface to the LLVM/Clang compiler. It also hosts related tools built on top of libclang functionality, one of which is the binding generator. This generator is for auto-generating C library bindings for Julia language from a set of C/C++ headers. It has been refactored recently for adding cross-platform support. This project aims at providing a better user experience on generating bindings for different platforms, improving the support for handling more C declarations and adding more high-level Julia interfaces to the libclang API.

项目产出要求:

Add support for C vararg functions

Add support for dumping Julia documentation from C comments

Add support for auto-detecting dependent macros in the system headers

Add support for CompilationDatabase a.k.a extracting compile flags from compile_commands.json

Improve the support for C bitfield structs

Design and implement a more user-friendly configuration API (especially for cross-platform configuration)

Update the generator scripts in the downstream packages

Other misc. improvements in functionality

项目技术要求:

Good understanding of Julia AST

Good understanding of Clang AST

Good understanding of cross-compiling

来源:集智俱乐部

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年4月23日
下一篇 2021年4月23日

相关推荐