小编kfk*_*ili的帖子

编译器优化使用PAPI对FLOP和L2/L3缓存丢失率的影响

所以我们一直负责编译一些代码(我们应该把它当作黑盒子),使用不同的intel编译器优化标志(-O1和-O3)以及矢量化标志(-xhost和 - no-vec)并观察以下变化:

  • 执行时间处理时间
  • 浮点运算(FPOs)
  • L2和L3缓存丢失率

在执行这些优化之后,我们注意到执行时间的下降,这是预期的,考虑到编译器为了提高效率而对代码所做的所有更改.然而,我们也注意到FPO数量的下降,虽然我们知道这是一件好事,但我们不确定它为什么会发生.此外,我们注意到(并且无法解释)L2缓存未命中率的增加(随着优化级别的增加而增加),但缓存访问没有显着增加,并且L3级别几乎没有变化.

完全不使用矢量化或优化就L2缓存丢失率产生了最好的结果,我们想知道你们是否可以给我们一些见解,以及我们可以用来加深知识的支持文档,文献和资源关于这个话题.

谢谢.

编辑:使用的编译器选项是:

  • O0 -no-vec(最高执行时间,最低L2缓存未命中)
  • O1(执行时间越少,L2缓存未命中率越高)
  • O3(更少的执行时间,甚至更高的L2缓存未命中)
  • xhost(-O3执行时间相同,最高L2缓存未命中)

更新:

虽然整体L2缓存访问量略有下降,但实际未命中率却大幅增加.

使用-0O -no-vec

使用中的挂钟时间:13,957,075

  • L2缓存未命中:207,460,564
  • L2缓存访问:1,476,540,355
  • L2缓存未命中率:0.140504
  • L3缓存未命中:24,841,999
  • L3缓存访问:207,460,564
  • L3缓存未命中率:0.119743

使用-xhost

挂钟时间在usecs:4,465,243

  • L2缓存未命中:547,305,377
  • L2缓存访问:1,051,949,467
  • L2缓存未命中率:0.520277
  • L3缓存未命中:86,919,153
  • L3缓存访问:547,305,377
  • L3缓存未命中率:0.158813

c intel compiler-optimization flops cpu-cache

6
推荐指数
1
解决办法
574
查看次数

ldap3操作:SEARCH似乎失败了(search_filter语法与RFC4515)

编辑:tl; dr - search_filterSEARCH中使用的参数可能不符合RFC4515.

我在Ubuntu 14.04上运行了一个运行1.8.4版本的Django服务器.我正在使用Python 3.4,为此我正在尝试使用ldap3配置LDAP身份验证.

这是分别从1.6.2,12.04和2.7.3升级到上述版本的一部分.一切都正常,所以我认为问题出在我的最后,而不是身份验证服务器.

它的工作方式是我有一个名为authenticate_user.py的文件,它接收通过HTML表单传递的用户名和密码,如下所示.

def authenticateStudent(request):
    username = request.POST.get('username','')
    logger.info("User " + username + " has logged in.")
    password = request.POST.get('password','')
    x = Auth(username, password)
    retVal = x.AuthenticatePy()
    logger.info('retVale is '+str(retVal)) #this returns False
    #more code and more logging
Run Code Online (Sandbox Code Playgroud)

该方法从Auth类(如下所示)实例化一个对象,在其中存储用户名和密码,然后调用该类中的AuthenticatePy()方法.

import logging
import sys
import os.path,subprocess
import ldap3 as ldap
from ldap3 import Connection, Server, SIMPLE, SYNC, SUBTREE, ALL


logger = logging.getLogger('Submission')

class Auth():

    studentName = ""
    studentEmail = "" …
Run Code Online (Sandbox Code Playgroud)

python-ldap python-3.4 django-1.8

2
推荐指数
1
解决办法
6131
查看次数