Skip to content

Intel oneAPI 基础安装与环境配置

摘要: 本文详细介绍了 Intel oneAPI 跨架构编程模型的标准化部署流程,涵盖 Base Toolkit 与 HPC Toolkit 的安装、静默部署策略、环境变量管理以及基于 MPI 的功能验证。

1. 概述与环境准备

1.1 Intel oneAPI 简介

Intel oneAPI 是一种跨行业、开放、标准统一的编程模型,旨在简化跨 CPU、GPU、FPGA 等多架构的开发过程。其核心工具包包括:

  • Intel® oneAPI Base Toolkit: 基础套件,包含 DPC++ 编译器、数学库 (MKL)、性能分析工具 (Advisor, VTune) 等。
  • Intel® oneAPI HPC Toolkit: 高性能计算扩展,包含 Fortran 编译器、MPI 库、调试工具 (Inspector, Trace Analyzer) 等。

1.2 软件获取与规划

推荐将 oneAPI 安装至标准路径以保证兼容性。

项目说明示例路径
安装包目录存放下载的 .sh 脚本/root/inteloneapi
部署路径软件最终安装位置/opt/intel2021

获取渠道

安装包通常可从 Intel 官方网站免费下载:

2. 安装流程

2.1 准备工作

上传安装脚本(如 l_BaseKit_p_*.shl_HPCKit_p_*.sh)至服务器,并赋予执行权限:

bash
cd /root/inteloneapi
chmod a+x l_BaseKit_p_*.sh
chmod a+x l_HPCKit_p_*.sh

2.2 安装注意事项

路径一致性至关重要

HPC Toolkit 的安装路径必须与 Base Toolkit 保持完全一致。 在安装 Base Toolkit 时必须确定好路径(如 /opt/intel2021/oneapi),后续安装 HPC Toolkit 时将无法更改此根路径。

2.3 安装方式选择

方式 A:图形化安装 (GUI)

适用于桌面环境或配置了 X11 Forwarding 的场景。

  1. 安装 Base Toolkit:

    bash
    sh l_BaseKit_p_2021.1.0.2659_offline.sh
    • 选择 Accept & configure installation
    • 指定路径:/opt/intel2021/oneapi
    • 点击 Begin Installation
  2. 安装 HPC Toolkit:

    bash
    sh l_HPCKit_p_2021.1.0.2684_offline.sh
    • 安装程序会自动检测 Base Toolkit 路径并锁定。
    • 直接点击 Begin Installation

方式 B:静默/命令行安装 (CLI)

适用于服务器批量部署,使用 --cli 参数。

1. 静默安装 Base Toolkit

bash
# 进入交互式命令行模式
sh l_BaseKit_p_*.sh -a --cli
  • 操作流程:
    1. 同意协议。
    2. 选择 Accept & configure installation
    3. 输入自定义路径:/opt/intel2021/oneapi
    4. 取消数据收集(可选)。
    5. 选择 Begin Installation

2. 静默安装 HPC Toolkit

bash
sh l_HPCKit_p_*.sh -a --cli
  • 由于路径已被 Base Kit 锁定,直接选择 Accept & install 即可。

3. 环境变量配置

为了在 Shell 中直接调用 icc, mpicc 等工具,需要加载环境变量。

3.1 Source 方式 (推荐/单机)

这是最直接的方法,通过 setvars.sh 初始化当前 Shell 会话。

bash
# 语法: source <安装路径>/setvars.sh <架构> --force
source /opt/intel2021/oneapi/setvars.sh intel64 --force

输出示例:

text
:: initializing oneAPI environment ...
:: oneAPI environment initialized ::

3.2 Module 方式 (HPC 集群)

在 Slurm 等集群环境中,推荐生成 Modulefiles 以便管理版本。

  1. 生成 Modulefiles:

    bash
    cd /opt/intel2021/oneapi
    # 运行模块设置脚本
    sh modulefiles-setup.sh

    默认生成路径: /opt/intel2021/oneapi/modulefiles

  2. 加载模块:

    bash
    module use /opt/intel2021/oneapi/modulefiles
    module load mpi/2021.1.1
    module load compiler/2021.1.1

4. 运行验证 (MPI Hello World)

编写一个简单的 MPI C 程序来验证编译器和 MPI 库是否工作正常。

4.1 编写测试代码

创建文件 hello.c:

c
#include <mpi.h>
#include <stdio.h>

int main(int argc, char* argv[]) {
    MPI_Init(NULL, NULL);
    
    int world_size;
    MPI_Comm_size(MPI_COMM_WORLD, &world_size);
    
    int world_rank;
    MPI_Comm_rank(MPI_COMM_WORLD, &world_rank);
    
    char processor_name[MPI_MAX_PROCESSOR_NAME];
    int name_len;
    MPI_Get_processor_name(processor_name, &name_len);

    printf("Hello World from processor %s, rank %d out of %d processors\n",
           processor_name, world_rank, world_size);
           
    MPI_Finalize();
    return 0;
}

4.2 编译与运行

  1. 编译: 确保已加载环境变量,使用 mpicc 编译。

    bash
    mpicc -o hello hello.c
  2. 单机运行:

    bash
    # 启动 5 个进程
    mpirun -np 5 ./hello
  3. 集群多节点运行: 假设 hostfile 定义了计算节点列表,且网络使用 InfiniBand (OFI)。

    bash
    mpirun -genv I_MPI_FABRICS shm:ofi -machinefile hostfile -np 6 ./hello

AI-HPC Organization