拉马努金计算:利用闲置智能设备的分布式计算:开源
我们很高兴地分享Ramanujan,一个新的开源编程语言和分布式计算平台,旨在释放现代智能设备巨大的、尚未开发的处理能力。想象一下,所有那些闲置的智能手机和智能电视都能为科学研究贡献力量!
灵感来源很简单:阿波罗导航计算机的中央处理器(CPU)与现代科学计算器的性能相当。而今天的智能设备则强大了数百万倍,但大多数时间处于闲置状态。Ramanujan帮助利用这些力量推动科学进步。
什么是Ramanujan?
Ramanujan旨在进行分布式计算。与像BOINC这样通常需要项目特定客户端的平台不同,Ramanujan提供了一个通用解释器。项目拥有者可以用Ramanujan语言提交他们的代码,参与的设备在安装一次Ramanujan客户端后,可以执行任何提交的计算。
该解释器使用C++编写,显示出显著的性能提升:
- 对于梯度下降算法,速度比CPython快约14%(约350毫秒对比约410毫秒)。
- 对于鲸鱼优化算法,速度比MATLAB快20倍以上(优化10个函数时,2.5秒对比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!