版本说明
3.11.0 版本
Incredibuild Cloud 现已支持 Linux
Incredibuild Cloud 使用云 VM 让您可以立即扩展规模至上百个内核。Incredibuild 使用的算法用于节约成本并最大化性能。
3.10.0 版本
- Android 开源平台 (AOSP) 11 现已支持。
- 在可以使用同一个一体化安装程序进行安装和升级。
- 系统要求已更新。
- 我们增加了一些新的图标,并对选择图标的方式进行了优化。
- 您现在可以停止待处理状态的构建。
- 一如既往,每个版本都对错误进行了修复,并对稳定性进行了提升。
3.9.0 版本
Incredibuild Linux UI 现支持:
-
在 Coordinator monitor 上对多个机器进行基于过滤的 Bulk 运行。
-
Coordinator monitor 视图 - 每页选择的条目数量最优
-
Coordinator monitor 视图过滤 - 选择搜索栏时增加了下拉菜单
-
错误修复和稳定性改进
3.8.3 版本
注意: Incredibuild Linux 正在过渡到语义化版本的模式。即,您现在可以在我们发布新版本的时候,辨别出升级可用的内容的类型。0.96.80 > 3.8.3(之前为 0.96.91…)
Coordinator Monitor:
-
在 Coordinator Monitor 网格视图下,增加了过滤选项
纵列名称
Agent 状态
-
Agent Name
-
Agent IP
-
Build Group
-
Licensed / Agent’s Cores
-
Initiator / Helper Active Cores
-
Memory
-
Operating System
-
Model Name
-
Version
-
Subscribed
-
Unsubscribed
-
Online
-
Offline
-
-
Agent Management Console 的用户验证:
增加了用户验证,允许对 Agent 的用户界面进行受控访问。增加了两个用户组:
-
进行编辑和查看操作的已验证用户
-
在 Agent UI 上只有“仅查看”权限的访客用户
-
默认关闭用户验证 - 当“list”为空时,此特性关闭
-
当运行 --no-monitor mode 的时候,Monitor 选项卡也可以打开
-
在 Build History 选项卡增加了“Stop Build”的能力。
-
在 Task Information 窗口增加了 Task Duration 信息
Build Groups:
-
新的 Build Group 功能:
-
机器可能通过 Coordinator monitor 被分配到 Build Group (与 Subscribe 动作类似)
-
一个 Initiator 可能会仅通过分享相同Build Group 的 Helper 被分配到 Helper 内核
-
-
所有的机器都被预定义为“默认” Build Group 的一部分。
-
在 Coordinator Settings 选项卡可以进行 Build Group 设置(编辑、增加、删除)
安装验证:
-
安装验证 - 如果可用磁盘空间小于 50 GB,且磁盘分区小于 20%,安装则会失败。
-
避免因目录权限不足而将 tmpfs 文件系统用作 Incredibuild 存储。
0.96.80 版本
新增对 Android 10 (Q) (AOSP) 的支持
Incredibuild Linux 现已支持 Android 10 (Q) 构建执行的加速。
如需详细信息,请参考执行 Android 10 OS 构建。
错误修复和稳定性改进
0.96.71 版本
新的许可证种类 - 单次使用 VM
Incredibuild Linux 现在提供一个新的种类的许可证 - 单次使用 VM (SUVM)。此许可证用于启用用于为任务执行提供额外 CPU 资源的 VM 或 container。当它们所服务的任务完成的时候,这些机器也被终止。在这种机器运行的时候,Coordinator 自动分配 SUVM 许可证至这些机器。当任务结束且机器被终止时,SUVM 许可证将被自动取消分配,并返回到 Coordinator 以对其他机器重用。如需更多信息,请联系 Sales@Incredibuild.cn。
新增 Build Avoidance 能力
新增一个内置缓存选项,可以不通过重建最新的对象来加速任务执行过程。可以通过壳根据变化的需求和资源轻松启用或关闭 Build Avoidance 能力。
Bazel 支持
Incredibuild Linux 现已支持 Bazel 至 0.25.0 版本,以及 Bazel 沙盒构建。
额外改进:
-
安装改进。
-
对 Incredibuild Linux 运行所需网络端口的配置过程进行简化和安全性加强。
0.96.37 版本
-
解决了 Incredibuild Coordinator 重启的时候可能导致构建失败的问题。
-
解决了如果 Initiator 失去了与 Incredibuild Coordinator 的一个连接,则会导致运行的构建失败的问题。
-
多处稳定性优化。
0.96.26 版本
Build Systems 支持:
Incredibuild 现提供对 Gradle 构建的试验性支持。如需更多信息,请联系我们 support@Incredibuild.cn
性能
- 在产品中增加了一个选项,可以提升最多约 20% 的执行性能。此选项禁用了查看 Incredibuild 收集的用于展示 Incredibuild 图形化构建的监视器以及用于构建查询的数据的能力。此选项启用时,Console 窗口构建输出和构建历史仍然可用。有两种方式使用此选项:
在 ib_console 命令行中增加 --no-monitor 标志。
在启用的机器的 Agent Setting 中,取消选择 Visualization 选项卡中的 "Enable Build Monitor” 复选框:
-
一些一般的性能优化可以带来 7% 的额外性能提升。
其他
-
Incredibuild 现可在新许可证载入 Coordinator 时对 Agent 的许可证内核分配情况进行维护。
-
修复了各种稳定性问题。
0.95.12 版本
Build Systems 支持:
-
Incredibuild 现提供对 Bazel 构建系统的试验性支持。对于常用的 TensorFlow 工程编译,其基线展示出 7.5 倍的加速能力,让 TensorFlow 编译时间从 65 分钟缩短到 8.5 分钟。
-
使用 Incredibuild 运行 Bazel 构建,需要将如下加入标准的 Bazel 命令:
--jobs=N --local_resources=R,N,1
N 表示您 Incredibuild 基础设施中的内核总数,参数 R 应该为 N*200。例如,如果您的 Incredibuild 基础设施中的内核数为 70,则命令行为:
--jobs=70 --local_resources=14000,70,1
-
ccache 支持:Incredibuild 现全面支持所有工作模式的 ccache (显式调用以及通过软连接的隐式) - 更多信息参考 ccache 手册 https://ccache.samba.org/manual.html#_run_modes
使用 Incredibuild 时创建的 ccache 数据库,可能被没有使用 Incredibuild 执行的构建使用,反之亦然。例如,无论是否有 Incredibuild 调用,ccache 具有完全的互操作性。
安装:
-
为了避免 Incredibuild 版本升级对客户侧造成困扰,引入了一个新的实用脚本:ib_apply_upgrade.sh(位于 /opt/incredibuild/management)。此脚本应在安装了 Coordinator 并接受了一个参数“the upgrade tar file”的机器上与 sudo 执行。命令行样例:
sudo /opt/incredibuild/management/ib_apply_upgrade.sh Incredibuild_upgrade_0.94.95.tar.bz2
通过此方式,它会被提取至正确的位置,Coordinator 然后会将网络中所有的 Agent 都升级到自己的版本。
-
Incredibuild n 安装的变化:
仅当 -C 选项未给出的时候,才需要 -O <coordinator ip/hostname>。安装 Coordinator 时,都需要使用本地主机。因此,这种情况下不需要 -O,甚至 -O 不能存在。
其他:
-
chroot 脚本被更新以正确支持 schroot:
现在有两种脚本: ib_chroot.sh 和 ib_schroot.sh
Ib_chroot.sh 针对常规 chroot – 句法不变。
Ib_schroot.sh 针对 schroot 用户。区别为 ib_schroot.sh 需要 chroot 的名称作为参数,而非 chroot 创建的目录。这与 schroot 的常规句法相符。Add 和 remove 的语义相同,可在命令行帮助中找到。
重要:为让 Incredibuild 可访问 schroot 目录,请添加如下行至文件: /etc/schroot/default/fstab
/opt/incredibuild /opt/incredibuild none ro,bind 0 0