如何在SASBase中调用多线程(https://www.sas.com/)在AMD处理器(32核)和Windows 1



我无法在AMD机器上观察到任何基本SAS Base过程的并行执行,即:proc排序、proc means等,这些过程应该根据SAS Base文档自动运行多线程。

我做了什么:

  1. 我尝试在SAS Base中手动设置(AMD机器的(物理内核的数量:options threads cpucount=32 MEMSIZE=630621054720;然后,我使用:proc options group=performance;进行了检查,并观察了结果设置:
Group=PERFORMANCE 
CPUCOUNT=32       Specifies the number of processors that thread-enabled applications should assume are available for concurrent processing.
MEMSIZE=212697166080 Specifies the limit on the amount of virtual memory that can be used during a SAS session.
SORTSIZE=53687091200 Specifies the amount of memory that is available to the SORT procedure.
  1. 然而,在我的另一台Intel Core i7 4790k机器上,相同的SAS Base安装可以完美地运行多线程
  2. 此外,多核执行在我的AMD ryzen 3970x机器上与任何其他程序和IDE完美配合:
    • C#
    • python
    • matlab

我的AMD SAS安装规范:---操作系统:WX64_WKS。---基本SAS软件
---SAS/STAT
--SAS/GRAPH
---SAS Enterprise Miner
----SAS Enterprise Guide
----SAS/ACCESS到PC文件的接口
------桌面版SAS Enterprise Miner
-----本地访问的SAS工作区服务器
--高性能套件
---Microsoft Excel 的SAS外接程序

  • SAS Enterprise Guide版本:7.100.0.2002
  • SAS基本版本:9402.0.21456.22399
  • 已用内存:384 372 736字节
  • 客户端过程:在控制台上运行
  • 在WOW64(32位subsystrm(中工作:否
  • 操作为64位版本:是

---操作系统---

  • 名称:Windows 8

  • 版本:6.2.0.9200

  • .NET运行时版本:4.0.30319.42000(无service pack(

  • AUTOMATIC SYSHOSTINFOLONG X64_7PRO WIN 6.1.7600工作站

  • 自动SYSNCPU 32

  • AUTOMATIC SYSPROCESSMODE SAS工作区服务器

  • AUTOMATIC SYSPROCESSNAME对象服务器

  • 自动SYSPROCNAME

  • 自动SYSRC 0

  • 自动SYSSCP赢得

  • 自动SYSSCPL X64_7PRO

启用options msglevel=i,然后运行proc means。日志将告诉您是否正在使用多线程。

options msglevel=i;
proc means data=sashelp.cars;
run;

日志:

NOTE: Multiple concurrent threads will be used to summarize data.
NOTE: There were 428 observations read from the data set SASHELP.CARS.
NOTE: PROCEDURE MEANS used (Total process time):
real time           0.04 seconds
cpu time            0.03 seconds

因此,通过实验,我得出了glmselect可以使用的最大允许内核数为:22。如果我运行选项线程cpucount=23 MEMSIZE=80G REALMEMBSIZE=800G;proc glmselect data=table***我看到计算是在单个核心上完成的。如果我提交选项线程cpucount=22,那么所有的22个核心都被使用。我的假设是:也许SAS glmselect正在根据我的物理内存调整最大核心数量,即128 GB。然而,通过选项cpucount=23 MEMSIZE=800G REALMEMBSIZE=8800G仍然为微积分画上了一个可怜的句号。将与SAS支持取得联系

最新更新