[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-mars-project--mars":3,"tool-mars-project--mars":62},[4,18,26,36,46,54],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",160015,2,"2026-04-18T11:30:52",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":42,"last_commit_at":43,"category_tags":44,"status":17},8272,"opencode","anomalyco\u002Fopencode","OpenCode 是一款开源的 AI 编程助手（Coding Agent），旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件，而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码，还是排查难以定位的 Bug，OpenCode 都能通过自然语言交互高效完成，显著减少开发者在重复性劳动和上下文切换上的时间消耗。\n\n这款工具专为软件开发者、工程师及技术研究人员设计，特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构，这意味着用户可以审查代码逻辑、自定义行为策略，甚至私有化部署以保障数据安全，彻底打破了传统闭源 AI 助手的“黑盒”限制。\n\n在技术体验上，OpenCode 提供了灵活的终端界面（Terminal UI）和正在测试中的桌面应用程序，支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具，安装便捷，并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客，还是渴望提升产出的独立开发者，OpenCode 都提供了一个透明、可信",144296,1,"2026-04-16T14:50:03",[13,45],"插件",{"id":47,"name":48,"github_repo":49,"description_zh":50,"stars":51,"difficulty_score":32,"last_commit_at":52,"category_tags":53,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",109154,"2026-04-18T11:18:24",[14,15,13],{"id":55,"name":56,"github_repo":57,"description_zh":58,"stars":59,"difficulty_score":32,"last_commit_at":60,"category_tags":61,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[45,13,15,14],{"id":63,"github_repo":64,"name":65,"description_en":66,"description_zh":67,"ai_summary_zh":68,"readme_en":69,"readme_zh":70,"quickstart_zh":71,"use_case_zh":72,"hero_image_url":73,"owner_login":74,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":77,"owner_email":77,"owner_twitter":77,"owner_website":77,"owner_url":78,"languages":79,"stars":109,"forks":110,"last_commit_at":111,"license":112,"difficulty_score":32,"env_os":76,"env_gpu":113,"env_ram":113,"env_deps":114,"category_tags":120,"github_topics":121,"view_count":32,"oss_zip_url":77,"oss_zip_packed_at":77,"status":17,"created_at":134,"updated_at":135,"faqs":136,"releases":166},9277,"mars-project\u002Fmars","mars","Mars is a tensor-based unified framework for large-scale data computation which scales numpy, pandas, scikit-learn and Python functions.","Mars 是一个基于张量的统一计算框架，旨在让大规模数据处理变得像使用单机库一样简单。它完美兼容并扩展了用户熟悉的 NumPy、pandas 和 scikit-learn 等主流 Python 库，无需重写大量代码即可将原本只能在单台机器上运行的任务，轻松扩展到多核本地环境或分布式集群中执行。\n\n对于经常受限于内存不足或计算速度慢的数据科学家、研究人员及 Python 开发者而言，Mars 解决了处理海量数据时的性能瓶颈问题。当数据量大到无法放入内存，或者单机计算耗时过长时，Mars 能通过自动并行化和分布式调度显著提升效率。例如，在估算圆周率的示例中，Mars 利用多核加速，将原本需要 20 多秒的计算缩短至数秒内完成。\n\nMars 的核心亮点在于其“无感升级”的体验：用户只需将导入语句从 `import numpy` 改为 `import mars.tensor`，或将 `pandas.DataFrame` 替换为 `mars.DataFrame`，并在最后调用 `.execute()`，底层系统便会自动接管复杂的分布式计算逻辑。无论是希望在笔记本电脑上充分利用多核性能，还是需要在","Mars 是一个基于张量的统一计算框架，旨在让大规模数据处理变得像使用单机库一样简单。它完美兼容并扩展了用户熟悉的 NumPy、pandas 和 scikit-learn 等主流 Python 库，无需重写大量代码即可将原本只能在单台机器上运行的任务，轻松扩展到多核本地环境或分布式集群中执行。\n\n对于经常受限于内存不足或计算速度慢的数据科学家、研究人员及 Python 开发者而言，Mars 解决了处理海量数据时的性能瓶颈问题。当数据量大到无法放入内存，或者单机计算耗时过长时，Mars 能通过自动并行化和分布式调度显著提升效率。例如，在估算圆周率的示例中，Mars 利用多核加速，将原本需要 20 多秒的计算缩短至数秒内完成。\n\nMars 的核心亮点在于其“无感升级”的体验：用户只需将导入语句从 `import numpy` 改为 `import mars.tensor`，或将 `pandas.DataFrame` 替换为 `mars.DataFrame`，并在最后调用 `.execute()`，底层系统便会自动接管复杂的分布式计算逻辑。无论是希望在笔记本电脑上充分利用多核性能，还是需要在服务器集群上处理 TB 级数据，Mars 都能提供流畅且高效的解决方案，让大规模计算触手可及。",".. image:: https:\u002F\u002Fraw.githubusercontent.com\u002Fmars-project\u002Fmars\u002Fmaster\u002Fdocs\u002Fsource\u002Fimages\u002Fmars-logo-title.png\n\n|PyPI version| |Docs| |Build| |Coverage| |Quality| |License|\n\nMars is a tensor-based unified framework for large-scale data computation\nwhich scales numpy, pandas, scikit-learn and many other libraries.\n\n`Documentation`_, `中文文档`_\n\nInstallation\n------------\n\nMars is easy to install by\n\n.. code-block:: bash\n\n    pip install pymars\n\n\nInstallation for Developers\n```````````````````````````\n\nWhen you want to contribute code to Mars, you can follow the instructions below to install Mars\nfor development:\n\n.. code-block:: bash\n\n    git clone https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars.git\n    cd mars\n    pip install -e \".[dev]\"\n\nMore details about installing Mars can be found at\n`installation \u003Chttps:\u002F\u002Fmars-project.readthedocs.io\u002Fen\u002Flatest\u002Finstallation\u002Findex.html>`_ section in\nMars document.\n\n\nArchitecture Overview\n---------------------\n\n.. image:: https:\u002F\u002Fraw.githubusercontent.com\u002Fmars-project\u002Fmars\u002Fmaster\u002Fdocs\u002Fsource\u002Fimages\u002Farchitecture.png\n\n\nGetting Started\n---------------\n\nStarting a new runtime locally via:\n\n.. code-block:: python\n\n    >>> import mars\n    >>> mars.new_session()\n\nOr connecting to a Mars cluster which is already initialized.\n\n.. code-block:: python\n\n    >>> import mars\n    >>> mars.new_session('http:\u002F\u002F\u003Cweb_ip>:\u003Cui_port>')\n\n\nMars Tensor\n-----------\n\nMars tensor provides a familiar interface like Numpy.\n\n+-----------------------------------------------+-----------------------------------------------+\n| **Numpy**                                     | **Mars tensor**                               |\n+-----------------------------------------------+-----------------------------------------------+\n|.. code-block:: python                         |.. code-block:: python                         |\n|                                               |                                               |\n|    import numpy as np                         |    import mars.tensor as mt                   |\n|    N = 200_000_000                            |    N = 200_000_000                            |\n|    a = np.random.uniform(-1, 1, size=(N, 2))  |    a = mt.random.uniform(-1, 1, size=(N, 2))  |\n|    print((np.linalg.norm(a, axis=1) \u003C 1)      |    print(((mt.linalg.norm(a, axis=1) \u003C 1)     |\n|          .sum() * 4 \u002F N)                      |            .sum() * 4 \u002F N).execute())         |\n|                                               |                                               |\n+-----------------------------------------------+-----------------------------------------------+\n|.. code-block::                                |.. code-block::                                |\n|                                               |                                               |\n|    3.14174502                                 |     3.14161908                                |\n|    CPU times: user 11.6 s, sys: 8.22 s,       |     CPU times: user 966 ms, sys: 544 ms,      |\n|               total: 19.9 s                   |                total: 1.51 s                  |\n|    Wall time: 22.5 s                          |     Wall time: 3.77 s                         |\n|                                               |                                               |\n+-----------------------------------------------+-----------------------------------------------+\n\nMars can leverage multiple cores, even on a laptop, and could be even faster for a distributed setting.\n\n\nMars DataFrame\n--------------\n\nMars DataFrame provides a familiar interface like pandas.\n\n+-----------------------------------------+-----------------------------------------+\n| **Pandas**                              | **Mars DataFrame**                      |\n+-----------------------------------------+-----------------------------------------+\n|.. code-block:: python                   |.. code-block:: python                   |\n|                                         |                                         |\n|    import numpy as np                   |    import mars.tensor as mt             |\n|    import pandas as pd                  |    import mars.dataframe as md          |\n|    df = pd.DataFrame(                   |    df = md.DataFrame(                   |\n|        np.random.rand(100000000, 4),    |        mt.random.rand(100000000, 4),    |\n|        columns=list('abcd'))            |        columns=list('abcd'))            |\n|    print(df.sum())                      |    print(df.sum().execute())            |\n|                                         |                                         |\n+-----------------------------------------+-----------------------------------------+\n|.. code-block::                          |.. code-block::                          |\n|                                         |                                         |\n|    CPU times: user 10.9 s, sys: 2.69 s, |    CPU times: user 1.21 s, sys: 212 ms, |\n|               total: 13.6 s             |               total: 1.42 s             |\n|    Wall time: 11 s                      |    Wall time: 2.75 s                    |\n+-----------------------------------------+-----------------------------------------+\n\n\nMars Learn\n----------\n\nMars learn provides a familiar interface like scikit-learn.\n\n+---------------------------------------------+----------------------------------------------------+\n| **Scikit-learn**                            | **Mars learn**                                     |\n+---------------------------------------------+----------------------------------------------------+\n|.. code-block:: python                       |.. code-block:: python                              |\n|                                             |                                                    |\n|    from sklearn.datasets import make_blobs  |    from mars.learn.datasets import make_blobs      |\n|    from sklearn.decomposition import PCA    |    from mars.learn.decomposition import PCA        |\n|    X, y = make_blobs(                       |    X, y = make_blobs(                              |\n|        n_samples=100000000, n_features=3,   |        n_samples=100000000, n_features=3,          |\n|        centers=[[3, 3, 3], [0, 0, 0],       |        centers=[[3, 3, 3], [0, 0, 0],              |\n|                 [1, 1, 1], [2, 2, 2]],      |                  [1, 1, 1], [2, 2, 2]],            |\n|        cluster_std=[0.2, 0.1, 0.2, 0.2],    |        cluster_std=[0.2, 0.1, 0.2, 0.2],           |\n|        random_state=9)                      |        random_state=9)                             |\n|    pca = PCA(n_components=3)                |    pca = PCA(n_components=3)                       |\n|    pca.fit(X)                               |    pca.fit(X)                                      |\n|    print(pca.explained_variance_ratio_)     |    print(pca.explained_variance_ratio_)            |\n|    print(pca.explained_variance_)           |    print(pca.explained_variance_)                  |\n|                                             |                                                    |\n+---------------------------------------------+----------------------------------------------------+\n\nMars learn also integrates with many libraries:\n\n- `TensorFlow \u003Chttps:\u002F\u002Fmars-project.readthedocs.io\u002F\u002Fen\u002Flatest\u002Fuser_guide\u002Flearn\u002Ftensorflow.html>`_\n- `PyTorch \u003Chttps:\u002F\u002Fmars-project.readthedocs.io\u002Fen\u002Flatest\u002Fuser_guide\u002Flearn\u002Fpytorch.html>`_\n- `XGBoost \u003Chttps:\u002F\u002Fmars-project.readthedocs.io\u002Fen\u002Flatest\u002Fuser_guide\u002Flearn\u002Fxgboost.html>`_\n- `LightGBM \u003Chttps:\u002F\u002Fmars-project.readthedocs.io\u002Fen\u002Flatest\u002Fuser_guide\u002Flearn\u002Flightgbm.html>`_\n- `Joblib \u003Chttps:\u002F\u002Fmars-project.readthedocs.io\u002Fen\u002Flatest\u002Fuser_guide\u002Flearn\u002Fjoblib.html>`_\n- `Statsmodels \u003Chttps:\u002F\u002Fmars-project.readthedocs.io\u002Fen\u002Flatest\u002Fuser_guide\u002Flearn\u002Fstatsmodels.html>`_\n\nMars remote\n-----------\n\nMars remote allows users to execute functions in parallel.\n\n+-------------------------------------------+--------------------------------------------+\n| **Vanilla function calls**                | **Mars remote**                            |\n+-------------------------------------------+--------------------------------------------+\n|.. code-block:: python                     |.. code-block:: python                      |\n|                                           |                                            |\n|    import numpy as np                     |    import numpy as np                      |\n|                                           |    import mars.remote as mr                |\n|                                           |                                            |\n|    def calc_chunk(n, i):                  |    def calc_chunk(n, i):                   |\n|        rs = np.random.RandomState(i)      |        rs = np.random.RandomState(i)       |\n|        a = rs.uniform(-1, 1, size=(n, 2)) |        a = rs.uniform(-1, 1, size=(n, 2))  |\n|        d = np.linalg.norm(a, axis=1)      |        d = np.linalg.norm(a, axis=1)       |\n|        return (d \u003C 1).sum()               |        return (d \u003C 1).sum()                |\n|                                           |                                            |\n|    def calc_pi(fs, N):                    |    def calc_pi(fs, N):                     |\n|        return sum(fs) * 4 \u002F N             |        return sum(fs) * 4 \u002F N              |\n|                                           |                                            |\n|    N = 200_000_000                        |    N = 200_000_000                         |\n|    n = 10_000_000                         |    n = 10_000_000                          |\n|                                           |                                            |\n|    fs = [calc_chunk(n, i)                 |    fs = [mr.spawn(calc_chunk, args=(n, i)) |\n|          for i in range(N \u002F\u002F n)]          |          for i in range(N \u002F\u002F n)]           |\n|    pi = calc_pi(fs, N)                    |    pi = mr.spawn(calc_pi, args=(fs, N))    |\n|    print(pi)                              |    print(pi.execute().fetch())             |\n|                                           |                                            |\n+-------------------------------------------+--------------------------------------------+\n|.. code-block::                            |.. code-block::                             |\n|                                           |                                            |\n|    3.1416312                              |    3.1416312                               |\n|    CPU times: user 32.2 s, sys: 4.86 s,   |    CPU times: user 616 ms, sys: 307 ms,    |\n|               total: 37.1 s               |               total: 923 ms                |\n|    Wall time: 12.4 s                      |    Wall time: 3.99 s                       |\n|                                           |                                            |\n+-------------------------------------------+--------------------------------------------+\n\nDASK on Mars\n------------\n\nRefer to `DASK on Mars`_ for more information.\n\nEager Mode\n```````````\n\nMars supports eager mode which makes it friendly for developing and easy to debug.\n\nUsers can enable the eager mode by options, set options at the beginning of the program or console session.\n\n.. code-block:: python\n\n    >>> from mars.config import options\n    >>> options.eager_mode = True\n\nOr use a context.\n\n.. code-block:: python\n\n    >>> from mars.config import option_context\n    >>> with option_context() as options:\n    >>>     options.eager_mode = True\n    >>>     # the eager mode is on only for the with statement\n    >>>     ...\n\nIf eager mode is on, tensor, DataFrame etc will be executed immediately\nby default session once it is created.\n\n.. code-block:: python\n\n    >>> import mars.tensor as mt\n    >>> import mars.dataframe as md\n    >>> from mars.config import options\n    >>> options.eager_mode = True\n    >>> t = mt.arange(6).reshape((2, 3))\n    >>> t\n    array([[0, 1, 2],\n           [3, 4, 5]])\n    >>> df = md.DataFrame(t)\n    >>> df.sum()\n    0    3\n    1    5\n    2    7\n    dtype: int64\n\n\nMars on Ray\n------------\nMars also has deep integration with Ray and can run on `Ray \u003Chttps:\u002F\u002Fdocs.ray.io\u002Fen\u002Flatest\u002F>`_ efficiently and\ninteract with the large ecosystem of machine learning and distributed systems built on top of the core Ray.\n\nStarting a new Mars on Ray runtime locally via:\n\n.. code-block:: python\n\n    import mars\n    mars.new_session(backend='ray')\n    # Perform computation\n\nInteract with Ray Dataset:\n\n.. code-block:: python\n\n    import mars.tensor as mt\n    import mars.dataframe as md\n    df = md.DataFrame(\n        mt.random.rand(1000_0000, 4),\n        columns=list('abcd'))\n    # Convert mars dataframe to ray dataset\n    ds = md.to_ray_dataset(df)\n    print(ds.schema(), ds.count())\n    ds.filter(lambda row: row[\"a\"] > 0.5).show(5)\n    # Convert ray dataset to mars dataframe\n    df2 = md.read_ray_dataset(ds)\n    print(df2.head(5).execute())\n\nRefer to `Mars on Ray`_ for more information.\n\n\nEasy to scale in and scale out\n------------------------------\n\nMars can scale in to a single machine, and scale out to a cluster with thousands of machines.\nIt's fairly simple to migrate from a single machine to a cluster to\nprocess more data or gain a better performance.\n\n\nBare Metal Deployment\n`````````````````````\n\nMars is easy to scale out to a cluster by starting different components of\nmars distributed runtime on different machines in the cluster.\n\nA node can be selected as supervisor which integrated a web service,\nleaving other nodes as workers.  The supervisor can be started with the following command:\n\n.. code-block:: bash\n\n    mars-supervisor -h \u003Chost_name> -p \u003Csupervisor_port> -w \u003Cweb_port>\n\nWorkers can be started with the following command:\n\n.. code-block:: bash\n\n    mars-worker -h \u003Chost_name> -p \u003Cworker_port> -s \u003Csupervisor_endpoint>\n\nAfter all mars processes are started, users can run\n\n.. code-block:: python\n\n    >>> sess = new_session('http:\u002F\u002F\u003Cweb_ip>:\u003Cui_port>')\n    >>> # perform computation\n\n\nKubernetes Deployment\n`````````````````````\n\nRefer to `Run on Kubernetes`_ for more information.\n\n\nYarn Deployment\n```````````````\n\nRefer to `Run on Yarn`_ for more information.\n\n\nGetting involved\n----------------\n\n- Read `development guide \u003Chttps:\u002F\u002Fmars-project.readthedocs.io\u002Fen\u002Flatest\u002Fdevelopment\u002Findex.html>`_.\n- Join our Slack workgroup: `Slack \u003Chttps:\u002F\u002Fjoin.slack.com\u002Ft\u002Fmars-computing\u002Fshared_invite\u002Fzt-17pw2cfua-NRb2H4vrg77pr9T4g3nQOQ>`_.\n- Join the mailing list: send an email to `mars-dev@googlegroups.com`_.\n- Please report bugs by submitting a `GitHub issue`_.\n- Submit contributions using `pull requests`_.\n\nThank you in advance for your contributions!\n\n\n.. |Build| image:: https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fworkflows\u002FMars%20CI%20Core\u002Fbadge.svg\n   :target: https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Factions\n.. |Coverage| image:: https:\u002F\u002Fcodecov.io\u002Fgh\u002Fmars-project\u002Fmars\u002Fbranch\u002Fmaster\u002Fgraph\u002Fbadge.svg\n   :target: https:\u002F\u002Fcodecov.io\u002Fgh\u002Fmars-project\u002Fmars\n.. |Quality| image:: https:\u002F\u002Fimg.shields.io\u002Fcodacy\u002Fgrade\u002F6a80bb4659ed410eb33795f580c8615e.svg\n   :target: https:\u002F\u002Fapp.codacy.com\u002Fproject\u002Fmars-project\u002Fmars\u002Fdashboard\n.. |PyPI version| image:: https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fpymars.svg\n   :target: https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Fpymars\n.. |Docs| image:: https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocs-latest-brightgreen.svg\n   :target: `Documentation`_\n.. |License| image:: https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fl\u002Fpymars.svg\n   :target: https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fblob\u002Fmaster\u002FLICENSE\n.. _`mars-dev@googlegroups.com`: https:\u002F\u002Fgroups.google.com\u002Fforum\u002F#!forum\u002Fmars-dev\n.. _`GitHub issue`: https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fissues\n.. _`pull requests`: https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fpulls\n.. _`Documentation`: https:\u002F\u002Fmars-project.readthedocs.io\n.. _`中文文档`: https:\u002F\u002Fmars-project.readthedocs.io\u002Fzh_CN\u002Flatest\u002F\n.. _`Mars on Ray`: https:\u002F\u002Fmars-project.readthedocs.io\u002Fen\u002Flatest\u002Finstallation\u002Fray.html\n.. _`Run on Kubernetes`: https:\u002F\u002Fmars-project.readthedocs.io\u002Fen\u002Flatest\u002Finstallation\u002Fkubernetes.html\n.. _`Run on Yarn`: https:\u002F\u002Fmars-project.readthedocs.io\u002Fen\u002Flatest\u002Finstallation\u002Fyarn.html\n.. _`DASK on Mars`: https:\u002F\u002Fmars-project.readthedocs.io\u002Fen\u002Flatest\u002Fuser_guide\u002Fcontrib\u002Fdask.html\n",".. image:: https:\u002F\u002Fraw.githubusercontent.com\u002Fmars-project\u002Fmars\u002Fmaster\u002Fdocs\u002Fsource\u002Fimages\u002Fmars-logo-title.png\n\n|PyPI版本| |文档| |构建| |覆盖率| |质量| |许可证|\n\nMars 是一个基于张量的大规模数据计算统一框架，能够扩展 NumPy、Pandas、scikit-learn 等多种库的功能。\n\n`文档`_, `中文文档`_\n\n安装\n----\n\nMars 的安装非常简单，只需执行以下命令：\n\n.. code-block:: bash\n\n    pip install pymars\n\n\n开发者安装\n```````````\n\n如果您希望为 Mars 贡献代码，可以按照以下步骤进行开发环境的安装：\n\n.. code-block:: bash\n\n    git clone https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars.git\n    cd mars\n    pip install -e \".[dev]\"\n\n更多关于 Mars 安装的详细信息，请参阅 Mars 文档中的 `安装 \u003Chttps:\u002F\u002Fmars-project.readthedocs.io\u002Fen\u002Flatest\u002Finstallation\u002Findex.html>`_ 部分。\n\n\n架构概览\n--------\n\n.. image:: https:\u002F\u002Fraw.githubusercontent.com\u002Fmars-project\u002Fmars\u002Fmaster\u002Fdocs\u002Fsource\u002Fimages\u002Farchitecture.png\n\n\n快速入门\n--------\n\n在本地启动一个新的运行时：\n\n.. code-block:: python\n\n    >>> import mars\n    >>> mars.new_session()\n\n或者连接到已初始化的 Mars 集群：\n\n.. code-block:: python\n\n    >>> import mars\n    >>> mars.new_session('http:\u002F\u002F\u003Cweb_ip>:\u003Cui_port>')\n\n\nMars 张量\n----------\n\nMars 张量提供了与 NumPy 类似的熟悉接口。\n\n+-----------------------------------------------+-----------------------------------------------+\n| **NumPy**                                     | **Mars 张量**                               |\n+-----------------------------------------------+-----------------------------------------------+\n|.. code-block:: python                         |.. code-block:: python                         |\n|                                               |                                               |\n|    import numpy as np                         |    import mars.tensor as mt                   |\n|    N = 200_000_000                            |    N = 200_000_000                            |\n|    a = np.random.uniform(-1, 1, size=(N, 2))  |    a = mt.random.uniform(-1, 1, size=(N, 2))  |\n|    print((np.linalg.norm(a, axis=1) \u003C 1)      |    print(((mt.linalg.norm(a, axis=1) \u003C 1)     |\n|          .sum() * 4 \u002F N)                      |            .sum() * 4 \u002F N).execute())         |\n|                                               |                                               |\n+-----------------------------------------------+-----------------------------------------------+\n|.. code-block::                                |.. code-block::                                |\n|                                               |                                               |\n|    3.14174502                                 |     3.14161908                                |\n|    CPU times: user 11.6 s, sys: 8.22 s,       |     CPU times: user 966 ms, sys: 544 ms,      |\n|               total: 19.9 s                   |                total: 1.51 s                  |\n|    Wall time: 22.5 s                          |     Wall time: 3.77 s                         |\n|                                               |                                               |\n+-----------------------------------------------+-----------------------------------------------+\n\nMars 可以充分利用多核资源，即使在笔记本电脑上也能显著提升性能，并且在分布式环境中表现更优。\n\n\nMars DataFrame\n--------------\n\nMars DataFrame 提供了与 Pandas 类似的熟悉接口。\n\n+-----------------------------------------+-----------------------------------------+\n| **Pandas**                              | **Mars DataFrame**                      |\n+-----------------------------------------+-----------------------------------------+\n|.. code-block:: python                   |.. code-block:: python                   |\n|                                         |                                         |\n|    import numpy as np                   |    import mars.tensor as mt             |\n|    import pandas as pd                  |    import mars.dataframe as md          |\n|    df = pd.DataFrame(                   |    df = md.DataFrame(                   |\n|        np.random.rand(100000000, 4),    |        mt.random.rand(100000000, 4),    |\n|        columns=list('abcd'))            |        columns=list('abcd'))            |\n|    print(df.sum())                      |    print(df.sum().execute())            |\n|                                         |                                         |\n+-----------------------------------------+-----------------------------------------+\n|.. code-block::                          |.. code-block::                          |\n|                                         |                                         |\n|    CPU times: user 10.9 s, sys: 2.69 s, |    CPU times: user 1.21 s, sys: 212 ms, |\n|               total: 13.6 s             |               total: 1.42 s             |\n|    Wall time: 11 s                      |    Wall time: 2.75 s                    |\n+-----------------------------------------+-----------------------------------------+\n\n\nMars Learn\n----------\n\nMars Learn 提供了与 scikit-learn 类似的熟悉接口。\n\n+---------------------------------------------+----------------------------------------------------+\n| **Scikit-learn**                            | **Mars learn**                                     |\n+---------------------------------------------+----------------------------------------------------+\n|.. code-block:: python                       |.. code-block:: python                              |\n|                                             |                                                    |\n|    from sklearn.datasets import make_blobs  |    from mars.learn.datasets import make_blobs      |\n|    from sklearn.decomposition import PCA    |    from mars.learn.decomposition import PCA        |\n|    X, y = make_blobs(                       |    X, y = make_blobs(                              |\n|        n_samples=100000000, n_features=3,   |        n_samples=100000000, n_features=3,          |\n|        centers=[[3, 3, 3], [0, 0, 0],       |        centers=[[3, 3, 3], [0, 0, 0],              |\n|                 [1, 1, 1], [2, 2, 2]],      |                  [1, 1, 1], [2, 2, 2]],            |\n|        cluster_std=[0.2, 0.1, 0.2, 0.2],    |        cluster_std=[0.2, 0.1, 0.2, 0.2],           |\n|        random_state=9)                      |        random_state=9)                             |\n|    pca = PCA(n_components=3)                |    pca = PCA(n_components=3)                       |\n|    pca.fit(X)                               |    pca.fit(X)                                      |\n|    print(pca.explained_variance_ratio_)     |    print(pca.explained_variance_ratio_)            |\n|    print(pca.explained_variance_)           |    print(pca.explained_variance_)                  |\n|                                             |                                                    |\n+---------------------------------------------+----------------------------------------------------+\n\nMars learn 还与许多库集成：\n\n- `TensorFlow \u003Chttps:\u002F\u002Fmars-project.readthedocs.io\u002F\u002Fen\u002Flatest\u002Fuser_guide\u002Flearn\u002Ftensorflow.html>`_\n- `PyTorch \u003Chttps:\u002F\u002Fmars-project.readthedocs.io\u002Fen\u002Flatest\u002Fuser_guide\u002Flearn\u002Fpytorch.html>`_\n- `XGBoost \u003Chttps:\u002F\u002Fmars-project.readthedocs.io\u002Fen\u002Flatest\u002Fuser_guide\u002Flearn\u002Fxgboost.html>`_\n- `LightGBM \u003Chttps:\u002F\u002Fmars-project.readthedocs.io\u002Fen\u002Flatest\u002Fuser_guide\u002Flearn\u002Flightgbm.html>`_\n- `Joblib \u003Chttps:\u002F\u002Fmars-project.readthedocs.io\u002Fen\u002Flatest\u002Fuser_guide\u002Flearn\u002Fjoblib.html>`_\n- `Statsmodels \u003Chttps:\u002F\u002Fmars-project.readthedocs.io\u002Fen\u002Flatest\u002Fuser_guide\u002Flearn\u002Fstatsmodels.html>`_\n\nMars remote\n-----------\n\nMars remote 允许用户并行执行函数。\n\n+-------------------------------------------+--------------------------------------------+\n| **普通函数调用**                          | **Mars remote**                            |\n+-------------------------------------------+--------------------------------------------+\n|.. code-block:: python                     |.. code-block:: python                      |\n|                                           |                                            |\n|    import numpy as np                     |    import numpy as np                      |\n|                                           |    import mars.remote as mr                |\n|                                           |                                            |\n|    def calc_chunk(n, i):                  |    def calc_chunk(n, i):                   |\n|        rs = np.random.RandomState(i)      |        rs = np.random.RandomState(i)       |\n|        a = rs.uniform(-1, 1, size=(n, 2)) |        a = rs.uniform(-1, 1, size=(n, 2))  |\n|        d = np.linalg.norm(a, axis=1)      |        d = np.linalg.norm(a, axis=1)       |\n|        return (d \u003C 1).sum()               |        return (d \u003C 1).sum()                |\n|                                           |                                            |\n|    def calc_pi(fs, N):                    |    def calc_pi(fs, N):                     |\n|        return sum(fs) * 4 \u002F N             |        return sum(fs) * 4 \u002F N              |\n|                                           |                                            |\n|    N = 200_000_000                        |    N = 200_000_000                         |\n|    n = 10_000_000                         |    n = 10_000_000                          |\n|                                           |                                            |\n|    fs = [calc_chunk(n, i)                 |    fs = [mr.spawn(calc_chunk, args=(n, i)) |\n|          for i in range(N \u002F\u002F n)]          |          for i in range(N \u002F\u002F n)]           |\n|    pi = calc_pi(fs, N)                    |    pi = mr.spawn(calc_pi, args=(fs, N))    |\n|    print(pi)                              |    print(pi.execute().fetch())             |\n|                                           |                                            |\n+-------------------------------------------+--------------------------------------------+\n|.. code-block::                            |.. code-block::                             |\n|                                           |                                            |\n|    3.1416312                              |    3.1416312                               |\n|    CPU times: user 32.2 s, sys: 4.86 s,   |    CPU times: user 616 ms, sys: 307 ms,    |\n|               total: 37.1 s               |               total: 923 ms                |\n|    Wall time: 12.4 s                      |    Wall time: 3.99 s                       |\n|                                           |                                            |\n+-------------------------------------------+--------------------------------------------+\n\nDASK on Mars\n------------\n\n更多信息请参阅 `DASK on Mars`_。\n\n急切模式\n```````````\n\nMars 支持急切模式，这使得开发更加友好且易于调试。\n\n用户可以通过选项在程序或控制台会话的开始处启用急切模式。\n\n.. code-block:: python\n\n    >>> from mars.config import options\n    >>> options.eager_mode = True\n\n或者使用上下文管理器。\n\n.. code-block:: python\n\n    >>> from mars.config import option_context\n    >>> with option_context() as options:\n    >>>     options.eager_mode = True\n    >>>     # 急切模式仅在 with 语句块内生效\n    >>>     ...\n\n如果启用了急切模式，张量、DataFrame 等将在创建后默认由当前会话立即执行。\n\n.. code-block:: python\n\n    >>> import mars.tensor as mt\n    >>> import mars.dataframe as md\n    >>> from mars.config import options\n    >>> options.eager_mode = True\n    >>> t = mt.arange(6).reshape((2, 3))\n    >>> t\n    array([[0, 1, 2],\n           [3, 4, 5]])\n    >>> df = md.DataFrame(t)\n    >>> df.sum()\n    0    3\n    1    5\n    2    7\n    dtype: int64\n\nMars on Ray\n------------\nMars 也与 Ray 深度集成，可以高效地在 `Ray \u003Chttps:\u002F\u002Fdocs.ray.io\u002Fen\u002Flatest\u002F>`_ 上运行，并与基于 Ray 核心构建的庞大机器学习和分布式系统生态进行交互。\n\n通过以下方式在本地启动一个新的 Mars on Ray 运行时：\n\n.. code-block:: python\n\n    import mars\n    mars.new_session(backend='ray')\n    # 执行计算\n\n与 Ray Dataset 交互：\n\n.. code-block:: python\n\n    import mars.tensor as mt\n    import mars.dataframe as md\n    df = md.DataFrame(\n        mt.random.rand(1000_0000, 4),\n        columns=list('abcd'))\n    # 将 Mars DataFrame 转换为 Ray Dataset\n    ds = md.to_ray_dataset(df)\n    print(ds.schema(), ds.count())\n    ds.filter(lambda row: row[\"a\"] > 0.5).show(5)\n    # 将 Ray Dataset 转换回 Mars DataFrame\n    df2 = md.read_ray_dataset(ds)\n    print(df2.head(5).execute())\n\n更多信息请参阅 `Mars on Ray`_。\n\n\n易于扩展和缩放\n--------------\n\nMars 可以在单台机器上运行，也可以扩展到拥有数千台机器的集群中。从单机迁移到集群以处理更多数据或获得更好的性能，过程相当简单。\n\n\n裸金属部署\n`````````````\n\n通过在集群中的不同机器上启动 Mars 分布式运行时的不同组件，Mars 很容易扩展到集群环境中。\n\n可以选择一台节点作为 Supervisor，该节点集成了 Web 服务，而其他节点则作为 Worker。Supervisor 可以使用以下命令启动：\n\n.. code-block:: bash\n\n    mars-supervisor -h \u003Chost_name> -p \u003Csupervisor_port> -w \u003Cweb_port>\n\nWorker 则可以使用以下命令启动：\n\n.. code-block:: bash\n\n    mars-worker -h \u003Chost_name> -p \u003Cworker_port> -s \u003Csupervisor_endpoint>\n\n所有 Mars 进程启动完成后，用户可以执行：\n\n.. code-block:: python\n\n    >>> sess = new_session('http:\u002F\u002F\u003Cweb_ip>:\u003Cui_port>')\n    >>> # 执行计算\n\n\nKubernetes 部署\n```````````````\n\n更多信息请参阅 `Run on Kubernetes`_。\n\n\nYarn 部署\n````````````\n\n更多信息请参阅 `Run on Yarn`_。\n\n\n参与贡献\n----------------\n\n- 阅读 `开发指南 \u003Chttps:\u002F\u002Fmars-project.readthedocs.io\u002Fen\u002Flatest\u002Fdevelopment\u002Findex.html>`_。\n- 加入我们的 Slack 工作组：`Slack \u003Chttps:\u002F\u002Fjoin.slack.com\u002Ft\u002Fmars-computing\u002Fshared_invite\u002Fzt-17pw2cfua-NRb2H4vrg77pr9T4g3nQOQ>`_。\n- 加入邮件列表：发送邮件至 `mars-dev@googlegroups.com`_。\n- 请通过提交 `GitHub issue`_ 报告问题。\n- 使用 `pull requests`_ 提交您的贡献。\n\n感谢您提前做出的贡献！\n\n\n.. |Build| image:: https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fworkflows\u002FMars%20CI%20Core\u002Fbadge.svg\n   :target: https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Factions\n.. |Coverage| image:: https:\u002F\u002Fcodecov.io\u002Fgh\u002Fmars-project\u002Fmars\u002Fbranch\u002Fmaster\u002Fgraph\u002Fbadge.svg\n   :target: https:\u002F\u002Fcodecov.io\u002Fgh\u002Fmars-project\u002Fmars\n.. |Quality| image:: https:\u002F\u002Fimg.shields.io\u002Fcodacy\u002Fgrade\u002F6a80bb4659ed410eb33795f580c8615e.svg\n   :target: https:\u002F\u002Fapp.codacy.com\u002Fproject\u002Fmars-project\u002Fmars\u002Fdashboard\n.. |PyPI version| image:: https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fpymars.svg\n   :target: https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Fpymars\n.. |Docs| image:: https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocs-latest-brightgreen.svg\n   :target: `Documentation`_\n.. |License| image:: https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fl\u002Fpymars.svg\n   :target: https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fblob\u002Fmaster\u002FLICENSE\n.. _`mars-dev@googlegroups.com`: https:\u002F\u002Fgroups.google.com\u002Fforum\u002F#!forum\u002Fmars-dev\n.. _`GitHub issue`: https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fissues\n.. _`pull requests`: https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fpulls\n.. _`Documentation`: https:\u002F\u002Fmars-project.readthedocs.io\n.. _`中文文档`: https:\u002F\u002Fmars-project.readthedocs.io\u002Fzh_CN\u002Flatest\u002F\n.. _`Mars on Ray`: https:\u002F\u002Fmars-project.readthedocs.io\u002Fen\u002Flatest\u002Finstallation\u002Fray.html\n.. _`Run on Kubernetes`: https:\u002F\u002Fmars-project.readthedocs.io\u002Fen\u002Flatest\u002Finstallation\u002Fkubernetes.html\n.. _`Run on Yarn`: https:\u002F\u002Fmars-project.readthedocs.io\u002Fen\u002Flatest\u002Finstallation\u002Fyarn.html\n.. _`DASK on Mars`: https:\u002F\u002Fmars-project.readthedocs.io\u002Fen\u002Flatest\u002Fuser_guide\u002Fcontrib\u002Fdask.html","# Mars 快速上手指南\n\nMars 是一个基于张量的统一框架，旨在扩展 NumPy、Pandas 和 Scikit-learn 等库，使其能够进行大规模数据计算。它支持多核并行及分布式集群运行。\n\n## 环境准备\n\n*   **系统要求**：支持 Linux、macOS 和 Windows。\n*   **Python 版本**：建议 Python 3.8 及以上版本。\n*   **前置依赖**：需安装 `pip` 包管理工具。\n*   **网络建议**：国内用户若遇到下载缓慢，可配置清华或阿里镜像源加速安装。\n\n## 安装步骤\n\n### 1. 基础安装（推荐）\n通过 PyPI 直接安装最新版本：\n\n```bash\npip install pymars\n```\n\n**国内加速安装：**\n```bash\npip install pymars -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n### 2. 开发者安装\n如果您需要贡献代码或修改源码，请克隆仓库并进行可编辑安装：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars.git\ncd mars\npip install -e \".[dev]\"\n```\n\n## 基本使用\n\n### 1. 启动会话\n在使用 Mars 之前，需要先启动一个本地运行时会话或连接到现有集群。\n\n**启动本地会话：**\n```python\n>>> import mars\n>>> mars.new_session()\n```\n\n**连接远程集群：**\n```python\n>>> import mars\n>>> mars.new_session('http:\u002F\u002F\u003Cweb_ip>:\u003Cui_port>')\n```\n\n### 2. 核心功能示例\n\nMars 提供了与主流科学计算库高度兼容的接口，只需少量改动即可实现并行加速。\n\n#### Mars Tensor (替代 NumPy)\n接口类似 NumPy，但需调用 `.execute()` 触发计算。\n\n```python\nimport mars.tensor as mt\n\nN = 200_000_000\n# 定义计算图（此时不执行）\na = mt.random.uniform(-1, 1, size=(N, 2))\nresult = ((mt.linalg.norm(a, axis=1) \u003C 1).sum() * 4 \u002F N)\n\n# 触发执行并获取结果\nprint(result.execute())\n```\n\n#### Mars DataFrame (替代 Pandas)\n接口类似 Pandas，适用于处理超大规模表格数据。\n\n```python\nimport mars.tensor as mt\nimport mars.dataframe as md\n\n# 创建大规模 DataFrame\ndf = md.DataFrame(\n    mt.random.rand(100000000, 4),\n    columns=list('abcd')\n)\n\n# 执行聚合操作\nprint(df.sum().execute())\n```\n\n#### Mars Learn (替代 Scikit-learn)\n提供熟悉的机器学习 API，支持大规模模型训练。\n\n```python\nfrom mars.learn.datasets import make_blobs\nfrom mars.learn.decomposition import PCA\n\n# 生成大规模数据集\nX, y = make_blobs(\n    n_samples=100000000, n_features=3,\n    centers=[[3, 3, 3], [0, 0, 0], [1, 1, 1], [2, 2, 2]],\n    cluster_std=[0.2, 0.1, 0.2, 0.2],\n    random_state=9\n)\n\n# 模型训练\npca = PCA(n_components=3)\npca.fit(X)\n\n# 查看结果（自动触发执行）\nprint(pca.explained_variance_ratio_)\n```\n\n#### Mars Remote (并行执行函数)\n允许将普通 Python 函数并行化执行。\n\n```python\nimport mars.remote as mr\n\ndef calc_chunk(n, i):\n    import numpy as np\n    rs = np.random.RandomState(i)\n    a = rs.uniform(-1, 1, size=(n, 2))\n    d = np.linalg.norm(a, axis=1)\n    return (d \u003C 1).sum()\n\nN = 200_000_000\nn = 10_000_000\n\n# 并行 spawn 任务\nfs = [mr.spawn(calc_chunk, args=(n, i)) for i in range(N \u002F\u002F n)]\npi = mr.spawn(lambda fs, N: sum(fs) * 4 \u002F N, args=(fs, N))\n\n# 获取最终结果\nprint(pi.execute().fetch())\n```\n\n### 3. 调试模式：Eager Mode\n默认情况下 Mars 采用懒执行（Lazy Execution）。在开发调试阶段，可开启“即时执行模式”（Eager Mode），使代码行为更像原生 NumPy\u002FPandas。\n\n**全局开启：**\n```python\nfrom mars.config import options\noptions.eager_mode = True\n```\n\n**上下文临时开启：**\n```python\nfrom mars.config import option_context\n\nwith option_context() as options:\n    options.eager_mode = True\n    # 在此块内创建的 Tensor 或 DataFrame 会立即执行\n    ...\n```","某金融数据团队需要在单台服务器上快速估算数亿条交易记录的风险指标，传统单机方案难以在有限时间内完成计算。\n\n### 没有 mars 时\n- 使用原生 Pandas 处理超过内存容量的数据集时，程序直接抛出内存溢出错误，导致任务频繁中断。\n- 为了强行运行，开发人员不得不编写复杂的分块读取与合并逻辑，代码维护成本极高且容易出错。\n- 即使勉强跑通，单核 CPU 串行处理 2 亿行数据耗时超过 20 秒，无法满足实时风控的时效要求。\n- 想要利用服务器多核优势或扩展至集群，必须重构底层代码引入 Spark 等重型框架，迁移门槛过高。\n\n### 使用 mars 后\n- Mars DataFrame 自动将大表切分为多个分区并行计算，轻松突破单机内存限制，无需手动管理分块。\n- 开发者只需将 `import pandas` 替换为 `import mars.tensor` 或 `mars.dataframe`，原有 NumPy\u002FPandas 代码几乎零修改即可运行。\n- 借助多核并行加速，同样的大规模蒙特卡洛模拟任务耗时从 22.5 秒骤降至 3.77 秒，效率提升近 6 倍。\n- 架构具备弹性伸缩能力，同一套代码既可本地调试，也能无缝连接现有集群进行分布式大规模运算。\n\nMars 让数据科学家无需学习复杂的分布式编程，即可用熟悉的 Python 语法轻松驾驭海量数据计算。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmars-project_mars_8b1b63d2.png","mars-project","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fmars-project_d62e8ee6.png","",null,"https:\u002F\u002Fgithub.com\u002Fmars-project",[80,84,88,91,95,99,103,106],{"name":81,"color":82,"percentage":83},"Python","#3572A5",97,{"name":85,"color":86,"percentage":87},"Cython","#fedf5b",1.7,{"name":89,"color":90,"percentage":42},"JavaScript","#f1e05a",{"name":92,"color":93,"percentage":94},"C++","#f34b7d",0.2,{"name":96,"color":97,"percentage":98},"Shell","#89e051",0.1,{"name":100,"color":101,"percentage":102},"C","#555555",0,{"name":104,"color":105,"percentage":102},"Dockerfile","#384d54",{"name":107,"color":108,"percentage":102},"HTML","#e34c26",2745,324,"2026-04-08T05:10:30","Apache-2.0","未说明",{"notes":115,"python":113,"dependencies":116},"该工具是一个基于张量的大规模数据计算框架，旨在扩展 numpy、pandas 和 scikit-learn 等库的功能。支持本地单节点运行（利用多核）以及分布式集群模式。可选集成 TensorFlow、PyTorch、XGBoost、LightGBM 等深度学习与机器学习库。安装命令为 pip install pymars。",[117,118,119],"numpy","pandas","scikit-learn",[14,45,16],[122,117,123,118,124,119,125,126,127,128,129,130,131,132,133],"python","tensor","machine-learning","tensorflow","pytorch","xgboost","lightgbm","ray","statsmodels","joblib","dataframe","dask","2026-03-27T02:49:30.150509","2026-04-19T06:02:08.410856",[137,142,147,152,157,162],{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},41645,"在 Windows 7 32 位系统上安装 PyMars 时提示找不到文件（FileNotFoundError）或 protobuf 相关错误，如何解决？","该问题通常由 protobuf 版本不兼容引起。`serialized_options` 是在 protobuf 3.6.x 中引入的，因此需要检查并更新 protobuf 版本。建议将 protobuf 升级至至少 3.4.0，推荐使用 3.6.1 或更高版本。可以通过命令 `pip install --upgrade protobuf` 进行更新。","https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fissues\u002F152",{"id":143,"question_zh":144,"answer_zh":145,"source_url":146},41646,"使用 mars.dataframe.read_sql_query() 读取 SQL 查询时报错，应该如何处理？","这是一个已知问题，在 v0.4.5 版本中已修复。如果您使用的是 v0.4.4 或更早版本，请升级到 v0.4.5 或更高版本。升级命令为：`pip install --upgrade pymars`。该问题源于代码尝试通过 `sa.Table(statement)` 判断输入是否为表时未正确捕获 `NoSuchTableError` 异常。","https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fissues\u002F1448",{"id":148,"question_zh":149,"answer_zh":150,"source_url":151},41647,"执行代码时出现 'No GPU found for execution' 错误，或者如何指定张量在特定的 GPU 上运行？","如果遇到 'No GPU found for execution' 错误，请确保您安装的是支持 GPU 的预发布版本（早期版本可能需要 `pip install --pre pymars`）。GPU 相关代码已在后续版本（如 0.2.4+）中回移植并正常工作，建议直接升级到最新稳定版。关于指定特定 GPU，目前主要通过环境变量 `CUDA_VISIBLE_DEVICES` 在启动前设置可见的 GPU 设备，例如在 Linux\u002FMac 下运行 `export CUDA_VISIBLE_DEVICES=0` 仅使用第一块 GPU。","https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fissues\u002F844",{"id":153,"question_zh":154,"answer_zh":155,"source_url":156},41648,"为什么 Mars 的 SVD (奇异值分解) 性能比 NumPy 慢很多？","性能差异通常是因为基准测试方法不当。NumPy 的 `np.linalg.svd` 默认计算完整矩阵 (`full_matrices=True`)，这对于“高瘦”矩阵（行数远大于列数）非常耗时。Mars 内部调用 SVD 时默认使用 `full_matrices=False` 以优化性能。在进行对比测试时，应在 NumPy 中也设置 `full_matrices=False`，即使用 `np.linalg.svd(a, full_matrices=False)`，这样两者的性能表现会更加接近且公平。","https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fissues\u002F247",{"id":158,"question_zh":159,"answer_zh":160,"source_url":161},41649,"如何在本地手动创建一个新的 Mars 会话以避免后台自动创建的延迟或警告？","当未检测到活动会话时，Mars 会在后台自动创建一个本地会话，这可能导致执行前的短暂延迟并产生警告。如果您希望手动控制会话创建，可以在执行任何计算任务前显式运行以下代码：\n```python\nimport mars\nmars.new_session()\n```\n这样可以立即初始化会话，避免后续的自动创建过程和相关的用户警告。","https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fissues\u002F3273",{"id":163,"question_zh":164,"answer_zh":165,"source_url":161},41650,"尝试结合 MARS 和 FLAML\u002FAutoML 进行分布式训练时遇到 AttributeError (如 nvmlInit_v2 not found)，原因是什么？","此类错误（如 `AttributeError: function 'nvmlInit_v2' not found`）通常与 GPU 环境配置有关，表明系统试图调用 NVIDIA 管理库但失败。即使您认为自己未使用 GPU，某些底层依赖或自动检测机制可能仍触发了 GPU 相关代码。请检查您的环境中是否正确安装了 NVIDIA 驱动和 pynvml 库，或者尝试在无 GPU 环境下明确禁用 GPU 加速功能。如果问题持续，请提供完整的错误堆栈以便进一步排查。",[167,172,177,182,187,192,197,202,207,212,217,222,227,232,237,242,247,252,257,262],{"id":168,"version":169,"summary_zh":170,"released_at":171},333688,"v0.10.0","## 变更内容\n* 优化 DataFrame.__setitem__ 的 tile 操作，通过减少分块元数据的生成时间来提升性能，由 @qinxuye 在 https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fpull\u002F3140 中实现。\n* 增加 alru 缓存最大值的默认配置，由 @zhongchun 在 https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fpull\u002F3146 中完成。\n* 支持返回元组输出的 scipy 特殊函数，由 @RandomY-2 在 https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fpull\u002F3139 中实现。\n* 修复当归约器有多个输出时 `DAG.to_dot` 的问题，由 @chaokunyang 在 https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fpull\u002F3150 中解决。\n* 修复在 RandomStateField 值为 None 时反序列化的问题，由 @chaokunyang 在 https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fpull\u002F3149 中修复。\n* 修补 pandas 魔法函数以支持操作数顺序反转，由 @wjsi 在 https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fpull\u002F3155 中完成。\n* 将 flaky 测试 `test_load_third_party_modules` 单独运行，由 @chaokunyang 在 https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fpull\u002F3162 中实施。\n* 在安装 Kubernetes 之前手动安装 cri-dockerd，由 @wjsi 在 https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fpull\u002F3166 中完成。\n* [Shuffle] 向 `ShuffleProxy` 添加 `n_mappers` 和 `n_reducers` 参数，由 @chaokunyang 在 https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fpull\u002F3160 中实现。\n* [Ray] 为 Ray 实现基于任务的 Shuffle，由 @chaokunyang 在 https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fpull\u002F3040 中完成。\n* 添加对 `{DataFrame,Series}.align` 的支持，由 @wjsi 在 https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fpull\u002F3147 中实现。\n* 整合剩余的误差函数和菲涅尔积分（除 ```fresnel_zeros``` 外），由 @RandomY-2 在 https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fpull\u002F3172 中完成。\n* 改进 numexpr 融合机制，由 @fyrestone 在 https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fpull\u002F3177 中实施。\n* 确保键是有效的 Python 标识符，由 @fyrestone 在 https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fpull\u002F3190 中完成。\n* 将 Web 组件中的 terser 从 5.7.1 升级至 5.14.2，由 @dependabot 在 https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fpull\u002F3194 中完成。\n* 实现 Airy 函数（除 `ai_zeros` 和 `bi_zeros` 函数外），由 @shantam-8 在 https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fpull\u002F3195 中完成。\n* 禁用 dependabot 的版本更新功能，由 @wjsi 在 https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fpull\u002F3203 中实施。\n* [Ray] 修复 Ray 内存泄漏问题，由 @fyrestone 在 https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fpull\u002F3184 中解决。\n* [Ray] 支持归约器接收非映射器作为输入的数据，由 @chaokunyang 在 https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fpull\u002F3206 中实现。\n* 优化单元测试和日志记录，由 @fyrestone 在 https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fpull\u002F3204 中完成。\n* 在设置子任务结果时释放 Actor 锁，由 @chaokunyang 在 https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fpull\u002F3210 中实现。\n* 优化 apply 操作中键的生成逻辑，由 @chaokunyang 在 https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fpull\u002F3208 中完成。\n* 修复移除映射器数据时的问题，由 @chaokunyang 在 https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fpull\u002F3214 中解决。\n* [Ray] 允许配置子任务的 CPU 核心数，由 @fyrestone 在 https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fpull\u002F3207 中实现。\n* 修复 versioneer 与 PEP600 的兼容性问题，由 @chaokunyang 在 https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fpull\u002F3223 中解决。\n* 支持无需索引或映射器 ID 即可获取映射器数据的功能，由 @chaokunyang 在 https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fpull\u002F3222 中实现。\n* [Ray] Ray","2023-01-10T09:30:53",{"id":173,"version":174,"summary_zh":175,"released_at":176},333689,"v0.9.0","这是 v0.9.0 的发布说明。完整的已解决问题和合并的 PR 列表请参见 [这里](https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fmilestone\u002F115?closed=1)。\n\n本发布说明仅涵盖与 v0.9.0rc3 的差异；所有亮点和变更，请参考之前的预发布版本的发布说明：\n\n[alpha1](https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Freleases\u002Ftag\u002Fv0.9.0a1)  \n[alpha2](https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Freleases\u002Ftag\u002Fv0.9.0a2)  \n[beta1](https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Freleases\u002Ftag\u002Fv0.9.0b1)  \n[beta2](https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Freleases\u002Ftag\u002Fv0.9.0b2)  \n[rc1](https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Freleases\u002Ftag\u002Fv0.9.0rc1)  \n[rc2](https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Freleases\u002Ftag\u002Fv0.9.0rc2)  \n[rc3](https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Freleases\u002Ftag\u002Fv0.9.0rc3)\n\n破坏兼容性的变更\n========================\n\n自 v0.9 起，不再支持 Python 3.6。\n\n亮点\n=======\r\n\r\n* 本版本对性能进行了全面优化，欢迎提供反馈。\n\n新特性\n==========\r\n\r\n* Oscar\r\n  - 启动 Mars 本地集群时停止导入主模块 (#3113)\r\n* Tensor\r\n  - 集成特殊的误差函数 (#3062)\r\n  - 集成部分 scipy 椭圆函数和积分 (#3112)\r\n* DataFrame\r\n  - 支持 Groupby 的 sort=True 参数 (#3063，感谢 @sak2002！)\r\n\r\n增强功能\n===========\r\n\r\n* 将远程回溯信息转储，使本地回溯更友好 (#3030)\r\n* 优化 Mars 包的导入速度 (#3035)\r\n* [Ray] 实现 Ray 任务执行器的进度跟踪 (#3065)\r\n* 对 `md.merge` 同时进行双向洗牌 (#3066)\r\n* 优化 ThreadedServiceContext.get_chunks_meta 的使用方式 (#3067)\r\n* 在分布式环境下，对 groupby 的 tile 过程中不激进地选择树形方法 (#3070)\r\n* 目前在 merge 中禁用布隆过滤器 (#3071)\r\n* [Ray] 为 Ray 执行上下文实现 get_chunks_result 方法 (#3072)\r\n* 在执行完成后移除 mapper 数据时使用 tell 方法 (#3073)\r\n* 在任务分配器中更均衡地分配 reducer 操作，以平衡集群负载 (#3075)\r\n* [Ray] 在任务结束时销毁 Ray 执行器 (#3074)\r\n* 将 `DataFrameGroupBy.agg` 的 tile 过程中结合树形和洗牌方法 (#3077)\r\n* [Ray] 为 Ray 执行上下文实现 get_chunks_meta 方法 (#3076)\r\n* 使用操作系统指定的端口而非随机端口来创建子池 (#3087)\r\n* 当前一次调用阻塞时，只调用一次不可变 Web API (#3088)\r\n* 统一 DataFrameGroupByAgg 的自动方法 tile 逻辑 (#3094)\r\n* [Ray] 支持基本的子任务重试和 lineage 重建 (#3097)\r\n* 简化 actor 批量调用中的参数传递 (#3100)\r\n* [Ray] 为 Ray 执行上下文实现 get_total_n_cpu 方法 (#3104)\r\n* 优化传输性能 (#3105)\r\n* 在 shuffle 操作数中添加 `n_reducers` 和 `reducer_ordinal` 参数 (#3107)\r\n* [Ray] 在 Ray 任务执行器上实现 cancel 方法 (#3093)\r\n* [Ray] 默认按需创建 RayTaskState actor (#3114)\r\n* [Ray] 为 Ray 任务执行器上下文实现垃圾回收功能 (#3116)\r\n* 优化可序列化内存 (#3126)\n\n错误修复\n=======","2022-06-12T11:19:30",{"id":178,"version":179,"summary_zh":180,"released_at":181},333690,"v0.10.0a1","这是 v0.10.0a1 的发布说明。完整的已解决问题和合并的 PR 列表请参见 [这里](https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fmilestone\u002F114?closed=1)。\n\n新特性\n==========\n\n* Oscar\n  - 启动 Mars 本地集群时停止导入主模块 (#3110)\n* Tensor\n  - 集成特殊的误差函数 (#3060)\n  - 集成部分 SciPy 椭圆函数和积分 (#3111)\n* DataFrame\n  - 支持 Groupby 的 `sort=True` 参数 (#2959，感谢 @sak2002！)\n\n增强功能\n===========\n\n* 暂时禁用合并中的布隆过滤器 (#2967)\n* [Ray] 实现 Ray 任务执行器的进度跟踪 (#3008)\n* 转储远程回溯信息，使本地回溯更友好 (#3028)\n* 在执行完成后移除映射器数据时使用 tell 方法 (#3027)\n* 优化 Mars 包的导入速度 (#3022)\n* 在分布式环境下，对 Groupby 的 tile 操作不激进地选择树形方法 (#3032)\n* [Ray] 为 Ray 执行上下文实现 get_chunks_result 方法 (#3023)\n* 优化 ThreadedServiceContext.get_chunks_meta 的使用方式 (#3037)\n* 对 `md.merge` 操作同时对两边进行 shuffle (#3041)\n* 在任务分配器中分配归约操作，以使集群各节点负载更加均衡 (#3048)\n* [Ray] 在任务完成时销毁 Ray 执行器 (#3049)\n* [Ray] 为 Ray 执行上下文实现 get_chunks_meta 方法 (#3052)\n* [Ray] 支持基本的子任务重试和 lineage 重建 (#2969)\n* 将 `DataFrameGroupBy.agg` 的 tile 操作中树形方法和 shuffle 方法结合使用 (#3051)\n* [Ray] 为 Ray 执行上下文实现 get_total_n_cpu 方法 (#3059)\n* [Ray] 在 Ray 任务执行器上实现 cancel 方法 (#3044)\n* 使用操作系统指定的端口而非随机端口来创建子池 (#3053)\n* 统一 DataFrameGroupByAgg 的自动方法 tile 逻辑 (#3084)\n* 简化池或集群结束时的路由器清理工作 (#3086)\n* 当前一次调用阻塞时，仅调用不可变 Web API 一次 (#3085)\n* [Ray] 默认按需创建 RayTaskState actor (#3081)\n* [Ray] 为 Ray 任务执行器上下文实现垃圾回收功能 (#3061)\n* 简化 actor 批量调用中的参数传递 (#3098)\n* 优化传输性能 (#3091)\n* 向 shuffle 操作数中添加 `n_reducers` 和 `reducer_ordinal` 参数 (#3055)\n* 优化可序列化内存使用 (#3120)\n\n错误修复\n=======\n\n* 修复删除映射器数据时的错误 (#3018)\n* 修复 recursive_tile 可能导致单个可 tile 对象被重复 tile 的问题 (#3021)\n* 修复不支持稀疏数据格式时的错误信息 (#3046)\n* 修补 pandas，使 1.2 和 1.3 版本之间的 pickle 兼容 (#3047)\n* 修复 auto_merge_chunks 中的分块索引错误 (#3057)\n* [Ray] 修复 Ray 工作进程故障转移问题 (#3080)\n* [Metric] 修复 Prometheus 指标后端 (#3124)\n* 修复 mt.{cumsum, cumprod} 在第一个分块为空时的问题 (#3134)\n\n测试\n====\n\n* 在 CI 中检查可序列化对象的初始化 (#3007)\n* 对异步 fixture 使用 @pytest_asyncio.fixture 而不是 @pytest.fixture (#3025)\n* 将代码所有者更改为 Mars PMC 维护者 (#3031)\n* [Ray] 修复 Ray 执行器进度测试 (#3033)\n* [Ray] 优化 Ray CI 的执行时间及 s","2022-06-12T10:56:55",{"id":183,"version":184,"summary_zh":185,"released_at":186},333691,"v0.8.7","这是 v0.8.7 的发布说明。\n\n错误修复\n=======\n* 修复了 Linux Wheel 包中缺少 Web 相关包的问题 (#3014)","2022-05-10T02:49:29",{"id":188,"version":189,"summary_zh":190,"released_at":191},333692,"v0.9.0rc3","这是 v0.9.0rc3 的发布说明。完整的已解决问题和已合并的 PR 列表请参见 [这里](https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fmilestone\u002F112?closed=1)。\n\n新特性\n==========\n* Tensor\n  - 实现椭球谐函数 (#2891，感谢 @shantam-8!)\n* 服务\n  - 支持 Worker 元数据服务 (#2909)\n  - 基础 Ray 执行后端 (#2921)\n\n增强功能\n=========\n* 添加执行 API，以支持自定义 Mars Task Service (#2894)\n* 优化序列化性能 (#2914)\n* 在拉取 Shuffle 数据时跳过在元数据中添加带宽信息 (#2922)\n* 将完整元数据存储在 Worker 上，并通过从 Worker 拉取来更新 Supervisor 的元数据 (#2912)\n* 使用 Cython 加速核心序列化 (#2924)\n* 优化生命周期 API，支持通过引用计数进行加锁或解锁 (#2926)\n* 在分配初始节点时忽略 Fetch 操作数 (#2929)\n* 使用 Cython 加速消息序列化 (#2932)\n* 在分配子任务时忽略广播者的本地性 (#2943)\n* 允许为大对象将序列化操作派生到线程中 (#2944)\n* 为 Ray 通道添加指标和事件报告 (#2936)\n* 增加更多关于执行信息的日志 (#2940)\n* 添加对 `dask.persist` 的支持 (#2953，感谢 @loopyme!)\n* 移除 `should_be_monotonic` 属性 (#2949)\n* 添加操作数和子任务执行的指标 (#2947，感谢 @zhongchun!)\n* [Ray] 通过在远程节点上查询来优化 Ray Fetcher (#2957)\n* 改进部署后端 (#2958)\n* 支持上报 Tile 进度 (#2954)\n* 为可 Tile 化图添加逻辑键 (#2961，感谢 @zhongchun!)\n* [Ray] 从元数据加载子任务输入 (#2976)\n* 新的 ExecutionConfig API (#2968)\n* 修复推测执行与着色算法的兼容性问题 (#2995)\n* 将可能耗时较长的函数放在线程中执行，用于生命周期跟踪器 (#2992)\n* 优化指标配置 (#2996，感谢 @zhongchun!)\n* 扩展资源评估器的能力 (#2997，感谢 @zhongchun!)\n* 优化生成子任务图的过程 (#3004)\n* [Ray] Ray 执行状态 (#3002)\n\nBug 修复\n=========\n* 修复 Worker Actor Pool 的参数问题 (#2911，感谢 @zhongchun!)\n* 修复默认配置，确保存储后端已正确配置 (#2935)\n* 在操作数执行中包裹错误，以保护调度服务 (#2964)\n* 修复 `DataFrame.apply` 的 Series 结果 dtype 问题 (#2978)\n* 修复 Shuffle 任务中潜在的数据泄漏问题 (#2975)\n* 修复从 Pandas 创建 DataFrame 时可能出现的空分块问题 (#2987)\n* [Ray] 通过 Ray 客户端支持新的 Ray 集群 (#2981)\n* 修复构造操作数时 missing extra_params 的问题 (#2999)\n* 修复 Ray 后端中的 `msg_to_simple_str` 并添加测试 (#3003)\n* 修复指定多个升序列时 `df.sort_values` 的结果不正确的问题 (#2984)\n\n文档\n=====\n* 添加指标相关的开发文档 (#2955，感谢 @zhongchun!)\n\n测试\n====\n* 添加 TPC-H 基准测试 (#2937)\n* 修复 Ray 相关用例 (#2983)\n* 修复 Kubernetes 和 Minikube 版本不匹配的问题 (#2986)\n* 允许选择 TPC 查询 (#3005)","2022-05-07T16:48:40",{"id":193,"version":194,"summary_zh":195,"released_at":196},333693,"v0.8.6","这是 v0.8.6 的发布说明。完整的已解决问题和已合并的 PR 列表请参见 [这里](https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fmilestone\u002F113?closed=1)。\n\n新特性\n==========\n\n* Tensor\n  - 实现椭球谐函数 (#2927，感谢 @shantam-8！)\n\n增强功能\n===========\n\n* 添加对 `dask.persist` 的支持 (#2990，感谢 @loopyme！)\n* 优化子任务图生成 (#3006)\n* 在分配子任务时忽略广播者的本地性 (#2994)\n\n缺陷修复\n=======\n\n* 修复当错误对象无法被序列化时任务会卡住的问题 (#2913)\n* 修复在多进程运行时调用 actor_ref 可能引发 KeyError 的问题 (#2962)\n* 在算子执行中包裹异常，以保护调度服务 (#2971)\n* 修复 `DataFrame.apply` 的 Series 结果 dtype 问题 (#2979)\n* 修正默认配置，确保存储后端已正确配置 (#2989)\n* 修复从 pandas 创建 DataFrame 时可能出现空分块的问题 (#2991)\n* 修复指定多个升序列时 `df.sort_values` 结果不正确的问题 (#3006)\n* 修复构造算子时 missing extra_params 的问题 (#3006)\n\n测试\n====\n\n* 修复 Kubernetes 和 Minikube 版本不匹配的问题 (#2988)","2022-05-07T16:56:08",{"id":198,"version":199,"summary_zh":200,"released_at":201},333694,"v0.8.5","这是 v0.8.5 的发布说明。完整的已解决问题和已合并的 PR 列表请参见 [这里](https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fmilestone\u002F111?closed=1)。\n\n新特性\n==========\n\n* Web\n  - 在 Mars Web 中添加堆栈显示页面 (#2881)\n\n增强功能\n===========\n\n* 避免在 Oscar 中打印过多日志信息 (#2880)\n* [Ray] 当自动扩缩容关闭时，使用主池作为所有者 (#2903)\n\n缺陷修复\n=======\n\n* 修复 XGBoost 在部分 Worker 没有 `evals` 数据时的问题 (#2863)\n* 当没有可用的 Supervisor 时，抛出 ActorNotExist 异常 (#2869)\n* 修复 DataFrame 算术运算中对日期时间常量的数据类型推断问题 (#2880)\n* 修复 GraphAssigner 中节点重复迭代的问题 (#2880)\n* 修复 `wait_task` 的超时问题 (#2890)\n* 确保可以在 `Actor.__pre_destroy__` 中抛出异常 (#2892)\n\n测试\n====\n\n* 将 azure-pipelines 升级到 Python 3.9 (#2886)\n* 适配 GitHub Actions 的官方取消操作 (#2903)","2022-04-09T16:00:55",{"id":203,"version":204,"summary_zh":205,"released_at":206},333695,"v0.9.0rc2","这是 v0.9.0rc2 的发布说明。完整的已解决问题和已合并的 PR 列表请参见 [这里](https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fmilestone\u002F110?closed=1)。\n\n新特性\n==========\n* Web\n  - 在 Mars Web 中添加堆栈显示页面 (#2876)\n\n增强功能\n===========\n* 避免在 Oscar 中打印过多日志信息 (#2871)\n* 将槽位调度器扩展为资源调度器 (#2846，感谢 @zhongchun！)\n* 通过剪枝无关分块优化迭代式分块计算 (#2874)\n* 优化 `DataFrameIsin` 的分块逻辑 (#2864)\n* 添加序列化基准测试 (#2901)\n* [Ray] Ray 客户端通道在首次编译时即可接收数据 (#2740，感谢 @Catch-Bull！)\n* 使用布隆过滤器优化 `df.merge` 的执行效率 (#2895)\n* 停止记录所有映射器元数据 (#2900)\n* [Ray] 当自动扩缩容关闭时，使用主池作为所有者 (#2878)\n\nBug 修复\n=======\n* 修复 XGBoost 在部分工作节点缺少 `evals` 数据时的问题 (#2861)\n* 修复 GraphAssigner 中节点重复迭代的问题 (#2857)\n* 当没有可用的监督者时，抛出 ActorNotExist 异常 (#2859)\n* 修复 DataFrame 对日期时间常量进行算术运算时的数据类型推断问题 (#2879)\n* 修复 `wait_task` 的超时问题 (#2883)\n* 确保在 `Actor.__pre_destroy__` 中能够正确抛出异常 (#2887)\n\n测试\n====\n* 将 Azure Pipelines 升级至 Python 3.9 (#2862)\n* 适配 GitHub Actions 正式下线的变更 (#2902)","2022-04-09T15:53:36",{"id":208,"version":209,"summary_zh":210,"released_at":211},333696,"v0.8.4","这是 v0.8.4 的发布说明。完整的已解决问题和已合并的 PR 列表请参见 [这里](https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fmilestone\u002F109?closed=1)。\n\n新特性\n==========\n* Tensor\n  - 实现了 `mars.tensor.setdiff1d` (#2829)\n* Learn\n  - 增加了对 `mars.learn.metrics.roc_auc_score` 的支持 (#2841)\n* 其他\n  - 使用 versioneer 管理发布版本 (#2807)\n  - 使用 cibuildwheel 发布 wheel 包 (#2854)\n\n增强功能\n=========\n* 支持生成子任务图的 DOT 文件 (#2818)\n* 增强日志中的子任务详情 (#2842)\n* 配置 XGBoost 作业的核数 (#2847)\n* 提升 `mars.learn.metrics.{roc_curve, roc_auc_score}` 的性能 (#2850)\n* 修复每个子任务存储重复的 chunk 和 meta 的问题 (#2851)\n* 因安全告警，升级 Mars UI 中的 minimist 和 nanoid (#2851)\n\n缺陷修复\n=======\n* 修复 set_subtask_result 的竞态条件 (#2819)\n* 修复子任务重复提交的问题 (#2819)\n* 通过确保输入张量 chunk 是 numpy 的 ndarray，修复 Vineyard CI 上的失败问题 (#2819)\n* 修复部分算子的 gpu 属性默认值 (#2820)\n* 修复在 Ray 集群上运行 xgboost 的问题 (#2830)\n* 将 StorageHandlerActor 改为有状态 (#2830)\n* 修复 OSS 的 `FileSystem.ls` 问题 (#2842)\n* 当仅指定纯依赖时，停止获取数据 (#2843)\n\n测试\n====\n* [Ray] 优化 Ray 测试 (#2810)\n* 定期构建 Docker 镜像 (#2807)","2022-03-23T01:02:36",{"id":213,"version":214,"summary_zh":215,"released_at":216},333697,"v0.9.0rc1","这是 v0.9.0rc1 的发布说明。完整的已解决问题和已合并的 PR 列表请参见 [这里](https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fmilestone\u002F108?closed=1)。\n\n新特性\n==========\n* Tensor\n  - 实现了 `mars.tensor.setdiff1d` (#2823)\n* Learn\n  - 增加了对 `mars.learn.metrics.roc_auc_score` 的支持 (#2832)\n* Services\n  - 基于推测执行的任务调度器 (#2576)\n* Metric\n  - [ray] 为 ray 对象存储添加指标 (#2776，感谢 @Catch-Bull!)\n* 其他\n  - 使用 versioneer 管理发布版本 (#2806)\n\n增强功能\n=========\n* 支持生成子任务图的 DOT 文件 (#2803)\n* 支持为 DataFrame 分块延迟生成 dtype、index_value 等信息 (#2756)\n* [ray] 默认启用 ray 的容错机制 (#2801)\n* 改进日志中的子任务详情 (#2836)\n* 更精确地管理全局槽位管理器的资源 (#2732)\n* 配置 XGBoost 作业的线程数 (#2844)\n* 提升 `mars.learn.metrics.{roc_curve, roc_auc_score}` 的性能 (#2838)\n* 因安全告警升级 Mars UI 中的 minimist 和 nanoid (#2849)\n* 修复每个子任务重复存储分块和元数据的问题 (#2845)\n\nBug 修复\n=======\n* 修复部分算子 `gpu` 属性的默认值 (#2811)\n* 通过确保输入张量分块为 numpy 的 ndarray，修复 Vineyard CI 上的失败问题 (#2817)\n* 修复 `set_subtask_result` 的竞态条件 (#2784)\n* 修复重复提交子任务的问题 (#2815)\n* 将 `StorageHandlerActor` 改为有状态 (#2824)\n* 修复在 Ray 集群上运行 xgboost 的问题 (#2826)\n* 修复 OSS 的 `FileSystem.ls` 方法 (#2837)\n* 当仅指定纯依赖时停止获取数据 (#2840)\n* 修复使用 cibuildwheel 构建时由 versioneer 引起的版本号脏污问题 (#2855)\n\n测试\n====\n* [Ray] 优化 Ray 测试 (#2793)\n* 定期构建 Docker 镜像 (#2804)\n* 引入 asv 基准测试 (#2798)","2022-03-23T01:03:53",{"id":218,"version":219,"summary_zh":220,"released_at":221},333698,"v0.8.3","This is the release notes of v0.8.3. See [here](https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fmilestone\u002F107?closed=1) for the complete list of solved issues and merged PRs.\r\n\r\nEnhancements\r\n===========\r\n\r\n* Stop inferring outputs when args provided (#2761)\r\n* Remove deprecate warnings when import mars.tensor (#2790)\r\n* [Ray] New ray actor creation model (#2794)\r\n\r\nBug fixes\r\n=======\r\n\r\n* Fix long exception of asyncio.gather (#2753)\r\n* Fix wrong result of `df.merge` (#2777)\r\n* Fix DataFrame initializer when Mars object exists in list (#2778)\r\n* Fix duplicate dec object ref (#2789, thanks @Catch-Bull!)\r\n* [Ray] Support Ray client mode (#2796)\r\n\r\nTests\r\n====\r\n\r\n* Increase test stability for command-line tests (#2786)","2022-03-08T08:24:35",{"id":223,"version":224,"summary_zh":225,"released_at":226},333699,"v0.9.0b2","This is the release notes of v0.9.0b2. See [here](https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fmilestone\u002F106?closed=1) for the complete list of solved issues and merged PRs.\r\n\r\nNew Features\r\n==========\r\n\r\n* Metric\r\n  - Add metric framework (#2742, thanks @zhongchun!)\r\n  - Add prometheus metric implementation (#2752, thanks @zhongchun!)\r\n  - Add ray metrics implementation (#2749, thanks @zhongchun!)\r\n  - Add common metrics (#2760, thanks @zhongchun!)\r\n\r\nEnhancements\r\n===========\r\n\r\n* Simplify rechunk implementation (#2745)\r\n* Stop inferring outputs when args provided (#2759)\r\n* Add broadcast merge support for DataFrame (#2772)\r\n* Remove deprecate warnings when import mars.tensor (#2788)\r\n* Optimize in-process actor calls (#2763)\r\n* [ray] New ray actor creation model (#2783)\r\n\r\nBug fixes\r\n=======\r\n\r\n* Fix duplicate dec object ref (#2741, thanks @Catch-Bull!)\r\n* Fix long exception of asyncio.gather (#2748)\r\n* Fix NameError: name 'pq' is not defined if pyarrow is not installed (#2751)\r\n* Fix profiling band_subtasks and most_calls are empty if the slow duration is large (#2755)\r\n* Fix the wrong result of df.merge (#2774)\r\n* Fix DataFrame initializer when Mars object exists in list (#2770)\r\n* [ray] support ray client mode (#2773)\r\n\r\nTests\r\n====\r\n\r\n* Increase test stability for command-line tests (#2779)","2022-03-08T07:29:43",{"id":228,"version":229,"summary_zh":230,"released_at":231},333700,"v0.8.2","This is the release notes of v0.8.2. See [here](https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fmilestone\u002F105?closed=1) for the complete list of solved issues and merged PRs.\r\n\r\nNew Features\r\n==========\r\n\r\n* DataFrame\r\n  - Support `inclusive` argument for `pd.date_range` (#2721)\r\n\r\nEnhancements\r\n===========\r\n\r\n* Optimize eval-setitem expressions as single eval expressions (#2699)\r\n* [Ray] Refine raydataset integration (#2712)\r\n* [Ray] refine ray dataset integration (#2726)\r\n* Add support for reading partitioned parquet for fastparquet (#2729)\r\n* Fix duplicate exceptions in log (#2736)\r\n\r\nBug fixes\r\n=======\r\n\r\n* Fix `sort_values` for empty DataFrame or Series (#2686)\r\n* Eliminate redundant eval node in optimization (#2688)\r\n* Avoid iterative tiling for `df.loc[:, fields]` (#2689)\r\n* Fix `use_arrow_dtype` parameter for `read_parquet` (#2702)\r\n* Fix error on dependent DataFrame setitems (#2703)\r\n* Fix `estimate_pandas_size` on `pd.MultiIndex` (#2710)\r\n* Import vineyard.data.pickle to make members available (#2716)\r\n* Fix shuffle when ndim of input tensors are different (#2728)","2022-02-21T13:33:37",{"id":233,"version":234,"summary_zh":235,"released_at":236},333701,"v0.9.0b1","This is the release notes of v0.9.0b1. See [here](https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fmilestone\u002F104?closed=1) for the complete list of solved issues and merged PRs.\r\n\r\nHighlights\r\n=======\r\n\r\n* A new coloring-based fusion algorithm is introduced in #2719, performance is expected to have a significant increase compared to previous releases, however, some unexpected situations may happen, feel free to reach out to us if you find any.\r\n\r\nNew Features\r\n==========\r\n\r\n* DataFrame\r\n  - Support `inclusive` argument for `pd.date_range` (#2718)\r\n* Others\r\n  - Add cibuildwheel with Linux AArch64 wheel build support (#2672, thanks @odidev!)\r\n\r\nEnhancements\r\n===========\r\n\r\n* Refine failure recovery log and exception (#2633)\r\n* Optimize eval-setitem expressions as single eval expressions (#2695)\r\n* Auto merge small chunks when `df.groupby().apply(func)` is doing aggregation (#2708)\r\n* Optimize GroupBy's aggregation algorithm (#2696)\r\n* [Ray] refine ray dataset integration (#2705)\r\n* Improve profiling (#2629)\r\n* Add support for reading partitioned parquet for fastparquet (#2724)\r\n* Introduce coloring based fusion algorithm (#2719)\r\n* Fix duplicate exceptions in log (#2723)\r\n\r\nBug fixes\r\n=======\r\n\r\n* Fix `sort_values` for empty DataFrame or Series (#2681)\r\n* Eliminate redundant eval node in optimization (#2683)\r\n* Avoid iterative tiling for `df.loc[:, fields]` (#2685)\r\n* [hotfix][ray] fix ray dataset compatibility (#2693)\r\n* Fix `use_arrow_dtype` parameter for `read_parquet` (#2698)\r\n* Fix error on dependent DataFrame setitems (#2701)\r\n* Fix `estimate_pandas_size` for `pd.MultiIndex` (#2707)\r\n* Import vineyard.data.pickle to make members available. (#2714)\r\n* Fix shuffle when ndim of input tensors are different (#2727)\r\n\r\nDocumentation\r\n===========\r\n\r\n* Add Slack invite link (#2704, thanks @yuyiming!)","2022-02-21T13:23:57",{"id":238,"version":239,"summary_zh":240,"released_at":241},333702,"v0.8.1","This is the release notes of v0.8.1. See [here](https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fmilestone\u002F103?closed=1) for the complete list of solved issues and merged PRs.\r\n\r\nNew Features\r\n==========\r\n\r\n* DataFrame\r\n  - Add support for GroupBy.{ffill, bfill,fillna} (#2657, thanks @Marascax!)\r\n  - Add `nunique` support for DataFrameGroupBy (#2667)\r\n\r\nEnhancements\r\n===========\r\n\r\n* Add support for HTTP request rewriter (#2665)\r\n* Add merging small files support for `md.{read_parquet, read_csv}` (#2669)\r\n* Optimize filtering DataFrame with its fields (#2668)\r\n\r\nBug fixes\r\n=======\r\n\r\n* Allow specifying multiple supervisor processes (#2625)\r\n* Fix backward compatibility for pandas 1.0 (#2630)\r\n* Fix `NotImplementedError` for `mo.batch` when single call not implemented (#2637)\r\n* Fix compatibility for pandas 1.4 (#2652)\r\n* Fix `IndexError` raise by aggregation of DataFrameGroupBy (#2653)\r\n* Fix df.loc[:] to make sure same index_value key generated (#2654)\r\n* Fix aggregation with comparison (#2655)\r\n* Fix the wrong index_value generated by df.loc[:] (#2666)\r\n* Fix `as_index` when calling groupby-agg (#2678)","2022-02-03T08:27:20",{"id":243,"version":244,"summary_zh":245,"released_at":246},333703,"v0.9.0a2","This is the release notes of v0.9.0a2. See [here](https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fmilestone\u002F102?closed=1) for the complete list of solved issues and merged PRs.\r\n\r\nNew Features\r\n==========\r\n\r\n* DataFrame\r\n  - Add support for GroupBy.{ffill, bfill,fillna} (#2639, thanks @Marascax!)\r\n  - Add `nunique` support for DataFrameGroupBy (#2662)\r\n* Others\r\n  - Add wheel support for Python 3.10 and drop Python 3.6 (#2622)\r\n\r\nEnhancements\r\n===========\r\n\r\n* Added merging small files support for `md.{read_parquet, read_csv}` (#2661)\r\n* Add support for HTTP request rewriter (#2664)\r\n* Optimize filtering DataFrame with its fields (#2571)\r\n* Add pyproject.toml to config build packages (#2674)\r\n\r\nBug fixes\r\n=======\r\n\r\n* Fix backward compatibility for pandas 1.1 and 1.2 (#2624)\r\n* Fix backward compatibility for pandas 1.0 (#2628)\r\n* Fix `NotImplementedError` for `mo.batch` when single call not implemented (#2635)\r\n* Fix `IndexError` raise by aggregation of DataFrameGroupBy (#2641)\r\n* Fix compatibility for pandas 1.4 (#2650)\r\n* Fix df.loc[:] to make sure same index_value key generated (#2643)\r\n* Fix aggregation with comparison (#2647)\r\n* Fix the wrong index_value generated by df.loc[:] (#2658)\r\n* Fix optimizing DataFrame query with timestamp in conditions (#2671)\r\n* Fix `as_index` when calling agg on SeriesGroupBy (#2676)","2022-02-03T08:19:51",{"id":248,"version":249,"summary_zh":250,"released_at":251},333704,"v0.8.0","This is the release notes of v0.8.0. See [here](https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fmilestone\u002F101?closed=1) for the complete list of solved issues and merged PRs.\r\n\r\nThis release note only covers the difference from v0.8.0rc1; for all highlights and changes, please refer to the release notes of the pre-releases:\r\n\r\n[alpha1](https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Freleases\u002Ftag\u002Fv0.8.0a1)\r\n[alpha2](https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Freleases\u002Ftag\u002Fv0.8.0a2)\r\n[alpha3](https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Freleases\u002Ftag\u002Fv0.8.0a3)\r\n[beta1](https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Freleases\u002Ftag\u002Fv0.8.0b1)\r\n[beta2](https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Freleases\u002Ftag\u002Fv0.8.0b2)\r\n[rc1](https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Freleases\u002Ftag\u002Fv0.8.0rc1)\r\n\r\nNew Features\r\n==========\r\n\r\n* Tensor\r\n  - Implements `mt.bincount` (#2552)\r\n* DataFrame\r\n  - Support `Series.median` (#2570, thanks @perfumescent!)\r\n* Learn\r\n  - Add `mars.learn.metrics.multilabel_confusion_matrix` and derivative metrics (#2568)\r\n\r\nEnhancements\r\n===========\r\n\r\n* Implement web API of `get_infos` (#2564)\r\n* Reduce time cost of cpu_percent() calls (#2572)\r\n* Stop calling user funcs when dtypes is specified (#2596)\r\n* Supports adding Mars extensions via setup entrypoints (#2598)\r\n* [Ray] Refine mars on ray usability (#2606)\r\n* Reduce estimation time cost (#2607)\r\n* Skip details of shuffled chunks in meta (#2609)\r\n* Reduce the time cost of fetching tileable data (#2616)\r\n* Reduce RPC cost of oscar by removing unnecessary tasks (#2613)\r\n* Use batched request to apply for slots (#2615)\r\n\r\nBug fixes\r\n=======\r\n\r\n* Fix index series.apply when result index unchanged (#2563)\r\n* Fix DataFrame getitem when exists duplicate columns (#2582)\r\n* Upgrade required version of vineyard (#2593)\r\n* Fix progress always is 0 or 100% (#2595)\r\n* Fix None dtype for some unary tensor functions (#2604)\r\n* Make Proxima work with latest Mars (#2605, thanks @yuyiming!)\r\n* Fix tests for cudf 21.10 (#2608)\r\n* Fix duplicate decref of subtask input chunk (#2614, thanks @Catch-Bull!)","2021-12-16T07:00:15",{"id":253,"version":254,"summary_zh":255,"released_at":256},333705,"v0.9.0a1","This is the release notes of v0.9.0a1. See [here](https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fmilestone\u002F100?closed=1) for the complete list of solved issues and merged PRs.\r\n\r\nNew Features\r\n==========\r\n\r\n* Tensor\r\n  - Implements `mt.bincount` (#2548)\r\n* DataFrame\r\n  - Support Series.median() (#2566, thanks @perfumescent!)\r\n* Learn\r\n  - Add `mars.learn.metrics.multilabel_confusion_matrix` and derivative metrics (#2554)\r\n* Services\r\n  - Add basic profiling support for supervisor (#2586)\r\n\r\nEnhancements\r\n===========\r\n\r\n* Add app_queue in new_cluster (#2550, thanks @xxxxsk!)\r\n* Implement web API of `get_infos` (#2558)\r\n* Reduce time cost of `cpu_percent()` calls (#2567)\r\n* Reduce estimation time cost (#2577)\r\n* [ray] refine mars on ray usability (#2580)\r\n* [ray] Refine raydataset integration (#2579)\r\n* Optimize tileable graph construction (#2583)\r\n* Stop calling user funcs when dtypes is specified (#2587)\r\n* Supports adding Mars extensions via setup entrypoints (#2589)\r\n* Skip details of shuffled chunks in meta (#2600)\r\n* Reduce the time cost of fetching tileable data (#2594)\r\n* Use batched request to apply for slots (#2601)\r\n* Reduce RPC cost of oscar by removing unnecessary tasks (#2597)\r\n\r\nBug fixes\r\n=======\r\n\r\n* Fix index `series.apply` when result index unchanged (#2557)\r\n* Stop using asdict to handle dataclasses (#2561)\r\n* Fix tests under cudf 21.10 (#2608)\r\n* Fix DataFrame getitem when exists duplicate columns (#2581)\r\n* Upgrade required version of vineyard. (#2588)\r\n* Fix progress always is 0 or 100% (#2591)\r\n* Make Proxima work with latest Mars (#2599, thanks @yuyiming!)\r\n* Fix None dtype for some unary tensor functions (#2603)\r\n* Fix duplicate decref of subtask input chunk (#2611, thanks @Catch-Bull!)\r\n\r\nDocumentation\r\n===========\r\n\r\n* Add a document about how to implement a Mars operand (#2562)","2021-12-16T06:49:00",{"id":258,"version":259,"summary_zh":260,"released_at":261},333706,"v0.7.5","This is the release notes of v0.7.5. See [here](https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fmilestone\u002F99?closed=1) for the complete list of solved issues and merged PRs.\r\n\r\nNew Features\r\n==========\r\n\r\n* Tensor\r\n  - Add preliminary implementations for ufunc methods (#2513)\r\n  - Add partial support for setitem with fancy indexing (#2544)\r\n* DataFrame\r\n  - Implements `md.get_dummies` (#2534, thanks @hoarjour!)\r\n* Learn\r\n  - Add `make_regression` support for learn module (#2517)\r\n  - Implements `mars.learn.preprocessor.LabelEncoder` (#2545)\r\n* Services\r\n  - Add web API for scheduling (#2535)\r\n* Web\r\n  - Display tileable properties on web (#2539, thanks @RandomY-2!)\r\n* Others\r\n  - Add experimental support for CUDA under WSL for Windows 11 (#2543)\r\n\r\nEnhancements\r\n===========\r\n\r\n* Reduce indentation of frontend code (#2541)\r\n\r\nBug fixes\r\n=======\r\n\r\n* Fix output of `df.groupby(as_index=False).size()` (#2508)\r\n* Fix reduction result on empty series (#2522)\r\n* Fix `df.loc` when df is empty (#2526)\r\n* [Ray] Fix serializing lambdas in web (#2529)\r\n* Fix `df.loc` when providing empty list (#2532)\r\n\r\nDocumentation\r\n===========\r\n\r\n* Add doc for reading csv in oss (#2530, thanks @Catch-Bull!)","2021-10-23T17:44:05",{"id":263,"version":264,"summary_zh":265,"released_at":266},333707,"v0.8.0rc1","This is the release notes of v0.8.0rc1. See [here](https:\u002F\u002Fgithub.com\u002Fmars-project\u002Fmars\u002Fmilestone\u002F98?closed=1) for the complete list of solved issues and merged PRs.\r\n\r\nNew Features\r\n==========\r\n\r\n* Tensor\r\n  - Add preliminary implementations for ufunc methods (#2510)\r\n  - Add partial support for setitem with fancy indexing (#2453)\r\n* DataFrame\r\n  - Support `md.get_dummies()` (#2323, thanks @hoarjour!)\r\n* Learn\r\n  - Add `make_regression` support for learn module (#2515)\r\n  - Implements fit and predict methods for bagging (#2516)\r\n  - Implements `mars.learn.ensemble.IsolationForest` (#2531)\r\n  - Implements `mars.learn.preprocessor.LabelEncoder` (#2542)\r\n* Services\r\n  - Add web API for scheduling (#2533)\r\n* Web\r\n  - Display tileable properties on web (#2525, thanks @RandomY-2!)\r\n* Others\r\n  - Support mutable tensor on oscar (#2432, thanks @Coco58323!)\r\n  - Add experimental support for CUDA under WSL for Windows 11 (#2538)\r\n\r\nEnhancements\r\n===========\r\n\r\n* Use black to enforce code style (#2492)\r\n* Reduce indentation of frontend code (#2540)\r\n\r\nBug fixes\r\n=======\r\n\r\n* Fix output of `df.groupby(as_index=False).size()` (#2507)\r\n* [Ray] Fix web serialize lambda (#2512)\r\n* Fix reduction result on empty series (#2520)\r\n* Fix `DataFrame.loc` when df is empty (#2524)\r\n* Fix `df.loc` when providing empty list (#2528)\r\n\r\nDocumentation\r\n===========\r\n\r\n* Add doc for reading csv in oss (#2514, thanks @Catch-Bull!)","2021-10-23T11:26:19"]