问题列表 - 第24985页

并行版本的循环不比串行版本快

我正在用C++编写一个程序来执行特定系统的模拟.对于每个时间步长,执行的最大部分是由单个循环占用.幸运的是,这是非常平行的,所以我决定使用Boost Threads并行化它(我在2核机器上运行).我期望加速接近串行版本的2倍,因为没有锁定.但是我发现根本没有加速.

我实现了循环的并行版本如下:

  • 唤醒两个线程(它们被阻挡在屏障上).
  • 然后每个线程执行以下操作:

    • 以原子方式获取并递增全局计数器.
    • 使用该索引检索粒子.
    • 对该粒子执行计算,将结果存储在单独的数组中
    • 等待工作完成障碍
  • 主线程等待工作完成障碍.

我使用这种方法,因为它应该提供良好的负载平衡(因为每次计算可能需要不同的时间量).我真的很好奇可能导致这种放缓的原因.我总是读到原子变量很快,但现在我开始怀疑它们是否有性能成本.

如果有人有什么想法或任何提示,我会非常感激.我一直在抨击它一个星期,并且剖析没有透露太多.

编辑:问题解决了! 我将详细说明我是如何解决这个问题的.我再次使用gprof,但这次编译时没有优化标志(-O3).然后,分析器立即表明我在函数中花费了不可思议的时间,该函数对每个单独的粒子执行计算:远远超过串行版本.

此功能是虚拟的,可以多态访问.我改变了代码直接访问它,而不是通过vtable和voila'并行版本产生了近2的加速!串行版本的相同更改几乎没有影响.

我不知道为什么会这样,如果有人知道的话会感兴趣!

感谢所有的海报.你们都在某种程度上有所帮助,接受一个答案是非常困难的.

parallel-processing performance multithreading boost-thread atomic-values

5
推荐指数
1
解决办法
524
查看次数


NHibernate - ManagedWebSessionContext和WebSessionContext有什么区别?

在NHibernate中,ManagedWebSessionContext和WebSessionContext有什么区别?哪个最好用,为什么?

根据这里描述,我无法区分.

asp.net nhibernate

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

用于监控HTTP流量的工具

我的iPhone上有一个应用程序发出Http请求; 是否可以使用某些工具查看HTTP流?

我在我的Windows PC上使用独立版本的(IEInspector)HttpAnalyzer工具来监控来自所有进程的HTTP流量,包括Android手机上的应用程序(感谢android调试桥接口).我可以为iPhone应用程序使用类似的OS X工具吗?这甚至是允许的吗?

提前致谢.

iphone macos http-monitor

8
推荐指数
1
解决办法
6242
查看次数

Ruby on Rails的Mac文本编辑器

我的PHP工作选择的文本编辑器是Panic的Coda.但是对于Ruby on Rails,它的自动完成功能一直在我的方式中,并且ROR在2个空格选项卡上的标准化与Coda的设置不相符.我一直在回到TextMate进行ROR工作,但是想知道是否有更好的选择.

macos text-editor ruby-on-rails

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

Django 作为 S3 代理

我使用自定义字段“下载文件”扩展了 ModelAdmin,它是我的 Django 项目中 URL 的链接,例如:

http://www.myproject.com/downloads/1
Run Code Online (Sandbox Code Playgroud)

在那里,我想提供一个存储在 S3 存储桶中的文件。存储桶中的文件不是公开可读的,用户可能无法直接访问它。现在我想

  • 避免必须将文件加载到服务器内存中(这些是多 GB 文件)
  • 避免在服务器上有临时文件

理想的解决方案是让 django 充当代理,将 S3 块直接传输给用户。我使用 boto,但没有找到流式传输块的可能性。有任何想法吗?

谢谢。

django amazon-s3 django-admin boto amazon-web-services

10
推荐指数
2
解决办法
4057
查看次数

如何在Grails项目中创建全局变量

制作Grails项目中几乎所有类都可以访问的变量的最佳实践是什么?是否有可用于存储该数据的配置文件(即application.properties)?

谢谢.

grails

12
推荐指数
1
解决办法
1万
查看次数

在方法名称上过滤log4net - 无法完全获得它

我正在使用log4net来记录我的Web应用程序的进度,使用Log4PostSharp来AOP-injectify所有方法.这具有记录(几乎)所有内容的期望效果,并且很好.

我现在需要将JUST Page_Load方法记录到文件/控制台.我显然可以使用log4postsharp类来执行此操作,但之后我将丢失所有其他日志记录.

我一直在查看log4net中的过滤器,从StringMatch过滤器开始,但只查看正在记录的消息,并且我在方法名称之后.这让我进入了PropertyFilter,但仍然没有喜悦.我的log4net.config片段是这样的:

<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
  <filter type="log4net.Filter.PropertyFilter">
    <key value="LocationInfo.MethodName"/>
    <stringToMatch value="Page_Load"/>
  </filter>
  <filter type="log4net.Filter.DenyAllFilter" />
  <file value="d:\\xxxx\\yyyyy\\zzzzLog"/>
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我正在尝试通过LocationInfo键入日志记录事件的MethodName,但我仍然记录了所有内容.编辑:正如评论中所提到的,我现在已经包含了我在RTFM之后添加的DenyAllFilter ;-)

有人可以帮忙吗?

谢谢,

迈克K.

asp.net log4net postsharp log4postsharp

7
推荐指数
1
解决办法
1316
查看次数

澄清android.R.drawable中的'private'drawables

我正在为一个应用程序制作一个菜单,并指向这个有用的资源,它列出了作为android 2.0 jar一部分的所有drawable.给出的用法示例是

myMenuItem.setIcon(android.R.drawable.ic_menu_save);
Run Code Online (Sandbox Code Playgroud)

不幸的是,我想要的那个(以及大多数列表)默认不可用.我明白了

android.R.drawable.ic_menu_login cannot be resolved
Run Code Online (Sandbox Code Playgroud)

当我尝试设置菜单项图像时:

    @Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Add two example menu buttons
    int groupId = 0;
    int menuItemOrder = Menu.NONE;

    int menuItemId = 1;
    String menuItemText = "Add Login Details";
    MenuItem menuItem = menu.add(groupId, menuItemId, menuItemOrder, menuItemText);
    menuItem.setIcon(android.R.drawable.ic_menu_login )
Run Code Online (Sandbox Code Playgroud)

最近的Android版本有什么变化吗?似乎大多数现在都是"私人资源"...找不到这方面的信息,但我发现了一些建议:

它用于访问私有资源.不要使用它,因为这些私有资源经常被删除/重命名/等.使用它很可能会在将来破坏您的应用程序.

为什么他们会改变资源名称?(他们背后的图像肯定,但名称?)我如何访问ic_menu_login呢?有没有比上述更好的理由?

android android-resources android-drawable

5
推荐指数
1
解决办法
3524
查看次数

.NET Recaptcha https

我们已经开始使用ASP.NET recaptcha控件,它工作正常.但我们的要求之一是所有出站流量超过Https.

我知道recaptcha支持https,但是在使用ASP.NET插件选项时,不清楚如何配置(或者即使它是可配置的).

有没有人有这方面的经验?

我将对我迄今发现的内容进行一点扩展....

Recaptcha包含3个公共类

RecaptchaControl, RecaptchaValidatorRecaptchaResponse

RecaptchaControl 是一个Asp.NET控件,那里的recaptcha特定方法似乎与主题/外观有关.

Validator的一个实例有一个RemoteIP字段(我认为它代表验证服务器),但我无法将其绑定到控件.

RecaptchaResponse 似乎或多或少代表具有可能响应的枚举(有效/无效/无法连接).

看起来像的Recaptcha控制智能地选择的https如果请求是HTTPS.我认为它在验证方面也是如此,但从源代码http://code.google.com/p/recaptcha/source/browse/trunk/recaptcha-plugins/dotnet/library/来看并不清楚

private const string VerifyUrl = "http://www.google.com/recaptcha/api/verify";
private const string RECAPTCHA_SECURE_HOST = "https://api-secure.recaptcha.net";        
private const string RECAPTCHA_HOST = "http://api.recaptcha.net";
--------------------------------SNIP------------------------------------
/// <summary>
        /// This function generates challenge URL.
        /// </summary>
        private string GenerateChallengeUrl(bool noScript)
        {
            StringBuilder urlBuilder = new StringBuilder();
            urlBuilder.Append(Context.Request.IsSecureConnection || this.overrideSecureMode ? RECAPTCHA_SECURE_HOST : RECAPTCHA_HOST);
            urlBuilder.Append(noScript ? "/noscript?" : "/challenge?");
            urlBuilder.AppendFormat("k={0}", this.PublicKey);
            if (this.recaptchaResponse != null && this.recaptchaResponse.ErrorCode != …
Run Code Online (Sandbox Code Playgroud)

asp.net https recaptcha

6
推荐指数
2
解决办法
6816
查看次数