inte oneAPI组件效果加速效果测试实验

本次通过对美国人口普查数据集数据进行处理探索探究intel oneAPI组件加速效果。整体上加速效果非常明显,三个实验环节合计节约了80%的时间,特别是ETL操作仅用原1%的时间。以下是整个实验内容。

1. 前期数据摸索
1.1 数据概况:基于1970年到2010年的美国人口普查数据
总数据行列:21721922行,45列 (df.shape)
涉及的列名:‘YEAR’, ‘DATANUM’, ‘SERIAL’, ‘CBSERIAL’, ‘HHWT’, ‘CPI99’, ‘GQ’, ‘PERNUM’, ‘SEX’, ‘AGE’, ‘INCTOT’, ‘EDUC’, ‘EDUCD’, ‘EDUC_HEAD’,‘EDUC_POP’, ‘EDUC_MOM’, ‘EDUCD_MOM2’, ‘EDUCD_POP2’, ‘INCTOT_MOM’, ‘INCTOT_POP’, ‘INCTOT_MOM2’, ‘INCTOT_POP2’, ‘INCTOT_HEAD’, ‘SEX_HEAD’ (df.columns)
默认格式:int+float (df.info())
在这里插入图片描述

1.2 数据缺失值处理
数据缺失是指在数据采集、传输和处理等过程中,由于某些原因导致数据不完整的情况。由于待分析数据的获取过程可能存在各种干扰因素,因此,在进行数据分析时存在缺失值是很常见的一种很常见的现象。针对带有缺失值的数据集,如何使用合适的方法处理缺失值是数据预处理的关键问题之一。
缺失值的处理方法有很多,如剔除缺失值、均值填充、K-近邻缺失值填补等方法。
考虑到本实验的目的和人口普查数据样本之间相关性弱,本例采取剔除法
1.3 数据重复值
剔除重复数据,保证样本冗余问题。
在这里插入图片描述

1.4 异常值处理
查看变量分布情况,是否有异常
在这里插入图片描述

清除无效数据,根据通货膨胀调整收入
在这里插入图片描述

2. 数据读入测试
对比是否导入Modin 库,对数据处理结果影响。
导入 Modin 库,设置 HDK (Heterogeneous Data Kernels) 作为后端计算引擎,该引擎基于OmniSciDB来获得针对特定dataframe操作集的高单节点可扩展性。
无加速插件读入:用时约55.9秒
在这里插入图片描述

导入 Modin版本 测试结果:14.3秒
在这里插入图片描述

3. 数据ETL对比测试
运行ETL操作对数据进行预处理,保留使用ridge regression算法预测收入和受教育程度之间的关联关系所需要的字段,清洗无效数据,根据通货膨胀调整收入,设置目标字段为EDUC。
无加速组件,测试结果:17.4秒
在这里插入图片描述

使用组件加速:0.174秒
在这里插入图片描述

4. 岭回归对比测试
对比是否使用Intel® Extension for Scikit-learn库,测试交互和数据建模耗时。
无加速插件:44.5秒
在这里插入图片描述

导入Intel® Extension for Scikit-learn库,调用patch函数,从而在运行时调用底层 Intel® oneAPI Data Analytics Library 对机器学习算法进行加速。
应用模型加速情况:9.1秒
在这里插入图片描述

5. 结论与原因探究
5.1 实验结论

实验结果汇总如下:可以看出intel插件加速效果非常明显,三个实验环节合计节约了80%的时间,特别是ETL操作仅用原1%的时间。Intel® Distribution of Modin 和 Intel® Extension for Scikit-learn 对数据量比较大的工作负载有较好的加速效果。
在这里插入图片描述

5.2 加速优化原因探究
 多核多线程运行。

Modin库可在多内核运行,加速 Pandas 的 API 执行速度。Modin 是一个 Python 第三方库,用于加速 Pandas 的 API 执行速度。原始的 Pandas 是单线程执行的,而 Modin 则重新打包了 Pandas 里面的 API,使其同时在多个内核中运行多线程运行,提高硬件性能的利用率。Modin通过Dask或是Ray(两种任务调度平台)来分配Pandas的任务。例如,在读取文件时,Pandas是整体读取,但是Modin是把文件分割以后把任务丢给一个个的核心,然后不同的核心在读取之后再汇总为一个文件,通过这样的切割文件分别读取的方式来实现性能的提高。
导入 Modin 库,设置 HDK (Heterogeneous Data Kernels) 作为后端计算引擎,该引擎基于OmniSciDB来获得针对特定dataframe操作集的高单节点可扩展性。
在这里插入图片描述

 插件库从底层硬件和异构平台进行深度优化,极大提升加速性能。
导入Intel® Extension for Scikit-learn库,调用patch函数,从而在运行时调用底层 Intel® oneAPI Data Analytics Library 对机器学习算法进行加速。该工具包为数据科学家、人工智能开发人员和研究人员提供熟悉的Python工具和框架,以加速Intel® 架构上的端到端数据科学和分析管道。这些组件均使用oneAPI库构建,用于低级计算优化。该工具包通过机器学习最大限度地提高了预处理的性能,并为高效的模型开发提供了互操作性。它能够在Intel® XPU上提供高性能的深度学习训练,并将快速推理集成到 AI 开发工作流程中。针对Intel优化的计算密集型Python包、Modin、scikit-learn 和 XGBoost,实现数据预处理和机器学习工作流的直接加速。
 实现COO格式稀疏矩阵乘积openMP并行化,提升加速性能
较好配置的硬件平台,配合算法优化加速。200G的内存对本身加速算法和内存调入会有比较明显的提升。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值