ITPub博客

首页 > 数据库 > 数据库开发技术 > 号称比Python快35000倍的神器Mojo来了,来尝尝鲜

号称比Python快35000倍的神器Mojo来了,来尝尝鲜

原创 数据库开发技术 作者:数据库杂记 时间:2024-04-08 07:20:35 0 删除 编辑

前言

未来很有前途的编程语言:一个是Rust, 另一个可能就是与python语法兼容的Mojo了。Mojo对那些Python开发人员而言,绝对是福音。先来看看Mojo的发明人:

Chris Lattner,这位编译器大神,曾领导了众多大型技术项目。他不仅是 LLVM 项目的主要发起人,还是 Clang 编译器的创作者。同时,他是苹果公司编译器开发团队的首席架构师和苹果新编程语言 Swift 创造者。此外,Chris Lattner 还为 Google Brain 和 TensorFlow 建立和管理了一系列与 AI 相关的编译器、运行时和编程语言团队。

2022 年 1 月,Chris Lattner 和 AI 领域专家 Tim Davis 共同建立了 Modular AI,旨在重建全球 ML 基础设施。

而在近日,编译器的大神 Chris Lattner 在社交平台上官宣了一种全新的编程语言:Mojo!注意,搞出这玩意儿的主要目的是重建ML基础设施。说简单点,就是觉得以前的PYTHON性能太差了。

看来,这个性能还真不是盖的。

实作

本文的目的,就是想试一下,看看Mojo的环境是啥样子的。按官方文档上说的,目前在Mac平台(使用苹果芯片)和Linux平台,都能很好的支持。而windows上,在不久的将来,也会推出相应的版本。

我这里就试着在Mac上安装一下Mojo最基本的环境:(参照https://docs.modular.com/mojo/manual/get-started/ 上边说的步骤)

1、环境安装

1. 安装modular命令行工具:
curl -s https://get.modular.com | sh -

output ......
==> Installing modularml/packages/modular
==> Caveats
The Modular tool expects or will create a MODULAR_HOME directory.
This defaults to `~/.modular`. You can create your own, and if you do,
please add `MODULAR_HOME=/path/to/your/dir` to your environment.
==> Summary
🍺  /opt/homebrew/Cellar/modular/0.7.0: 6 files, 61.3MB, built in 4 seconds
==> Running `brew cleanup modular`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
Removing: /opt/homebrew/Cellar/modular/0.6.0... (6 files, 61MB)
Removing: /Users/*****/Library/Caches/Homebrew/modular--0.6.0.tar.gz... (16.4MB)
==> Caveats
==> modular
The Modular tool expects or will create a MODULAR_HOME directory.
This defaults to `~/.modular`. You can create your own, and if you do,
please add `MODULAR_HOME=/path/to/your/dir` to your environment.

最后可以看到,装上的是0.7.0

接着:

2. 进行Modular帐户签名:// 你可以提前注册一个帐户 或直接使用 google account

modular auth

o complete auth, open this web page:
https://developer.modular.com/device?userCode=<usercode>

Verify using this code:
<usercode>

Waiting for confirmation...

然后,我们开始安装Mojo SDK

3. modular install mojo
# Found release for https://packages.modular.com/mojo @ 24.2.0-c2427bc5-release
# Downloading archive: packages/24.2.0-c2427bc5-release/mojo-arm64-apple-darwin22.6.0-24.2.0-c2427bc5-release-11-0.tar.gz
Downloading  ..............
4. 设置环境变量
我们看看zsh里头如何设置:

MOJO_PATH=$(modular config mojo.path) \
  && echo 'export MODULAR_HOME="'$HOME'/.modular"' >> ~/.zshrc \
  && echo 'export PATH="'$MOJO_PATH'/bin:$PATH"' >> ~/.zshrc \
  && source ~/.zshrc

2、试运行

检查下mojo的版本:

mojo mojo --version
mojo 24.2.0 (c2427bc5)

2.1、REPL解释执行代码

直接像python那样执行一行代码

mojo
Type `:quit` to exit the REPL and `:mojo help` for further assistance.
  1> print("Hello, world!") 
  2.  
Hello, world!
  2>  

2.2、执行一个Mojo文件

我们建一个非常简单的hello.mojo源程序文件,内容如下:

fn main():
    print("Hello, world!")

直接执行,使用命令:

mojo hello.mojo
结果如下:
Hello, world!

2.3、编译成可执行文件

上边是直接执行,也可以将其编译成可执行文件(这块儿是比原生python不太一样的地方)

mojo build hello.mojo
-- 经此一步,会在当前目录生成可执行文件
mojo build hello.mojo
ls
demo       hello      hello.mojo

接着,可以直接执行二进制可执行文件:

./hello
Hello, world!

你也可以直接clone出:git clone https://github.com/modularml/mojo.git, 里边有相当多的例子。

在示例里,有一个:deviceinfo.mojo.  mojo/examples下边。

mojo deviceinfo.mojo
System information: 
    OS             :  macOS
    CPU            :  apple-m1
    Arch           :  arm64-apple-darwin23.4.0
    Physical Cores :  10
    Logical Cores  :  10
    CPU Features   :  neon Apple M1

很有意思。

这些示例,确实可以供我们好好学习和练习一下。

3、在线试验

除了上边的仓库代码可以自己拿来参考和练习,也可以访问:https://docs.modular.com/mojo/playground

在上边你可以直接在线试验Mojo的基本编译功能。

小结

因为Mojo的目标非常明确,就是朝着性能而来的。一些不在乎性能的场合,python仍然会大规模使用。在一些性能比较关键的地方,Mojo必然会慢慢用上。相信,随着它不断地往前推出,一些相关的db访问的库陆续应该变得可用。我们翘首以待。

对于Rust和Mojo,两种编程语言(环境)都是值得期待的。它们两个在AI上边(都在同时发力)应该大有可为。

参考

1、https://www.fast.ai/posts/2023-05-03-mojo-launch.html
2、https://www.modular.com/mojo
3、https://blog.csdn.net/csdnnews/article/details/130497989
4、https://zhuanlan.zhihu.com/p/655157566

我是【Sean】,  欢迎大家长按关注公众号:数据库杂记。




原文作者:数据库杂记;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2019-04-22

  • 博文量
    276
  • 访问量
    160340