主权项 |
一种NUMA体系结构自适应的进程分类绑定方法,其特征在于:该方法包括以下步骤:步骤101.对处理器核的亲近性进行初始化;步骤102.对处理器核亲近性进行探测,并根据探测结果进行归类;步骤103.遍历系统内的进程并识别用户级进程和内核级进程;步骤104.根据进程的识别结果以及处理器亲近性的探测结果进行进程分类绑定;其中,步骤101所述的处理器核的亲近性指的是各处理器核与0号处理器核的亲近关系,处于同一处理器内部的所有处理器核,其亲近性相同;以0号处理器核为基准,各处理器核与0号处理器核的通信时间呈台阶式变化,处于同一台阶的处理器核其亲近性相同;对处理器核的亲近性进行初始化是探测处理器核的数目,并默认为所有处理器核与0号处理器核均处于相同等级的亲近性;处理器核数目的探测需要根据内核的初始化信息来确定,如果内核本身在初始化的时候没有提供相应的处理器核信息,则人为指定系统内的处理器核数目;其中,步骤102所述的对处理器核亲近性进行探测,是指对系统内所有使能的处理器核的远近关系进行探测,通过进程的通信时延差别来归类亲近性处于同一等级的处理器核;处理器核亲近性的探测将为进程的分类绑定提供绑定目标依据,其详细步骤如下:1)创建及绑定探测子进程创建与处理器核数目相等的子进程,并将每个子进程各绑定到一个处理器核上;将绑定到0号处理器核的子进程记为pid_core0,将绑定到i号处理器核的子进程记为pid_corei;2)探测子进程间通信及通信延迟计时以0号处理器核的探测子进程为基准,与其余探测子进程通过管道(pipe)建立通信,并记录通信延迟;将pid_core0与pid_corei的通信延迟记为T0‑i,则pid_core0和pid_core1的通信延迟记为T0‑1;再以最后一个处理器核的探测子进程为基准,与其余探测子进程通过管道建立通信并记录通信延迟;将pid_core15和pid_corei的通信延迟记为T15‑i,则pid_core15和pid_core14的通信延迟记为T15‑14;3)探测子进程通信计时归类对T0‑1到T0‑15的数据进行排序,以最小的数为基数,取每个数与基数的差值百分比,并设定一个同节点核间进程通信延迟差值百分比阈值,差值百分比在阈值以内的数据归为同一级通信延迟数据;再在剩下的数据中选取最小的数作为基数,按照上面的方法归类下一级通信延迟数据,以此类推;再将T15‑14到T15‑0的数据也进行排序,按照上面的方法进行数据归类处理,此处的同节点处理器核间进程通信延迟百分比阈值动态设定,龙芯上较合理的百分比阈值在10%‑‑20%之间;4)处理器核亲近性归类根据上面的T0‑1到T0‑15以及T15‑14到T15‑0的数据分类,分别得到一个相同亲近性级别的处理器核分类,将两种分类进行合并,即得到处于同一亲近性的处理器核集合;a[0],a[1],a[2],a[3]为一个集合,a[4],a[5],a[6],a[7]为一个集合,a[8],a[9],a[10],a[11]为一个集合,a[12],a[13],a[14],a[15]为一个集合;5)探测子进程注销及返回将各个探测子进程注销并更新处理器核亲近性集合。 |