拉马努金计算:利用闲置智能设备的分布式计算:开源
3 分•作者: ps_ramanujan•6 个月前
我们很高兴分享 Ramanujan,这是一个新的开源编程语言和分布式计算平台,旨在释放现代智能设备中尚未开发的巨大处理能力。 想象一下,所有闲置的智能手机和智能电视都在为科学研究做贡献!
灵感很简单:阿波罗制导计算机的 CPU 性能与现代科学计算器相当。 如今的智能设备强大数百万倍,但它们大多处于闲置状态。 Ramanujan 帮助利用这种力量来推动科学进步。
什么是 Ramanujan?
Ramanujan 专为分布式计算而设计。 与 BOINC 等平台不同,BOINC 通常需要特定于项目的客户端,Ramanujan 提供了一个通用解释器。 项目所有者使用 Ramanujan 语言提交他们的代码,参与设备只需安装一次 Ramanujan 客户端,即可执行任何提交的计算。
该解释器使用 C++ 编写,并展示了显著的性能提升:
* 对于梯度下降算法,比 CPython 快约 14%(约 350 毫秒 vs 约 410 毫秒)。
* 对于鲸鱼优化算法,比 MATLAB 快 20 倍以上(优化 10 个函数,耗时 2.5 秒 vs 55 秒)。
主要特性和未来目标
* 性能:在科学计算方面,比 CPython 和 MATLAB 更快。
* 开源:MIT 许可项目,代码可在 GitHub 上获取。
* 设备兼容性:提供 Android、macOS 和 Ubuntu 的二进制文件。 很快将支持 Windows。 从技术上讲,任何能够进行基本算术运算的联网设备,只要为其架构编译了解释器,就可以运行它。
* 易于使用:一个新的门户网站 (portal.ramanujan.dev) 使得任何人都可以轻松运行 Ramanujan 作业。 还有一个安装程序可用于本地桌面机器(Ubuntu、MacOS)。
我们近期目标侧重于 Python 兼容性:
* 完全采用 Python:通过采用 Python 结构和语法,允许最先进的 Python 研究代码在 Ramanujan 上无缝运行,无需修改。
* CFFI 集成:使相关的 CFFI 代码能够与 Python 脚本一起运行。
* 扩展设备支持:为更广泛的智能设备(冰箱、洗衣机等)提供客户端,以最大限度地提高全球计算贡献。
该项目有可能通过利用现有硬件来显著减少电子垃圾和碳排放。 我们相信它可以彻底改变科学研究的计算方式。
参与进来!
Ramanujan 尚处于起步阶段,我们正在积极寻找贡献者! 无论您对编程、编译器、分布式系统充满热情,还是只想为一项有影响力的开源项目做出贡献,我们都欢迎您加入我们。 我们特别欢迎学生来学习编译器、分布式编排(我们目前的服务仅用 2 核 CPU 即可编排数千次计算!)和大规模系统。
查看项目:
* 门户网站:https://portal.ramanujan.dev
* GitHub:https://github.com/Ramanujan-Computing/Ramanujan
让我们一起努力推动 Ramanujan 发展!
查看原文
We're excited to share Ramanujan, a new open-source programming language and distributed computation platform that aims to unlock the vast, untapped processing power of modern smart devices. Imagine all those idle smartphones and smart TVs contributing to scientific research!<p>The inspiration is simple: an Apollo guidance computer's CPU was as powerful as a modern scientific calculator. Today's smart devices are millions of times more powerful, yet they're mostly idle. Ramanujan helps utilize this power for scientific advancement.<p>What is Ramanujan?
Ramanujan is designed for distributed computation. Unlike platforms like BOINC, which often require project-specific clients, Ramanujan offers a universal interpreter. Project owners submit their code in the Ramanujan language, and participating devices, having installed the Ramanujan client once, can execute any submitted computation.<p>The interpreter is written in C++ and demonstrates significant performance gains:<p>~14% faster than CPython for a Gradient Descent algorithm (~350ms vs ~410ms).<p>Over 20X faster than MATLAB for a Whale Optimization Algorithm (2.5 sec vs 55 sec for optimizing 10 functions).<p>Key Features & Future Goals
Performance: Faster than CPython and MATLAB for scientific computations.<p>Open-Source: MIT licensed project, code available on GitHub.<p>Device Compatibility: Binaries available for Android, macOS, and Ubuntu. Windows support is coming soon. Technically, any internet-connected device capable of basic arithmetic can run the interpreter once compiled for its architecture.<p>Ease of Use: A new portal (portal.ramanujan.dev) makes it easy for anyone to run Ramanujan jobs. An installer is also available for local desktop machines (Ubuntu, MacOS).<p>Our near-future goals are focused on Python compatibility:<p>Full Python Adoption: Allow state-of-the-art Python research code to run seamlessly on Ramanujan without modifications, by adopting Python constructs and grammar.<p>CFFI Integration: Enable associated CFFI code to run alongside Python scripts.<p>Expanded Device Support: Make clients available for a wider range of smart devices (fridges, washing machines, etc.) to maximize global compute contributions.<p>This project has the potential to significantly reduce e-waste and carbon emissions by leveraging existing hardware. We believe it can revolutionize computing for scientific research.<p>Get Involved!
Ramanujan is in its nascent stage, and we're actively seeking contributors! Whether you're passionate about programming, compilers, distributed systems, or simply want to contribute to an impactful open-source project, we invite you to join us. Students are especially welcome to learn about compilers, distributed orchestration (our current service orchestrates thousands of computations with just a 2-core CPU!), and large-scale systems.<p>Checkout the project:<p>Portal: https://portal.ramanujan.dev<p>GitHub: https://github.com/Ramanujan-Computing/Ramanujan<p>Let's collaborate to push Ramanujan forward!