标签: metrics

如何计算GPU程序的加速?

动机:我的任务是测量我的CUDA C代码的Karp-Flatt度量并行效率,这需要计算加速.特别是,我需要将所有这些指标绘制为处理器数量的函数p.

定义: 加速是指并行算法比相应的顺序算法快多少,定义为:

在此输入图像描述

问题:我已经在CUDA C中实现了我的算法,并且已经计时了Tp.但是,在确定时仍存在一些问题Sp:

  • 如何在T1不完全重写代码的情况下观察?
    • 我可以在串口中执行CUDA代码吗?
  • 什么p时候我运行不同的内核与不同数量的线程?
    • 它是指不.线程或没有.整个运行时使用的处理器?
    • 由于这两个量在整个运行期间也会有所不同,是最大值还是平均值?
    • 我如何限制我的代码在一个处理器子集或更少的线程上运行!?

非常感谢.

performance metrics cuda gpgpu

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

Java应用程序分析

我正在寻找一个Java代码分析器,我可以用它来分析我的应用程序(它是一个在后端运行的服务)生产(所以意味着低头,它不能减慢我的应用程序).主要是我想调用树分析,也就是说a()调用b()然后b()调用c(),然后a()b()和c()花了多少时间,包括和包含.

见过jvisualvmjprofiler,但这不是我所期待的,因为我不能配合我的生产应用程序到他们,因为它会造成重大的性能问题.

此外,我确实通过了metrics(https://github.com/dropwizard/metrics),但它没有给我一个功能来分析调用树.

Callgrind(http://valgrind.org/docs/manual/cl-manual.html)类型库是我需要的,因为它提供了调用树分析功能和高级选项,如避免调用循环(递归).但是我不确定Callgrind是否可以用于生产,因为它会在程序终止时转储数据.

任何人都可以建议用于java的好的调用树分析器,可以在不影响性能的情况下用于生产吗?

java performance metrics profiling jprofiler

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

宏观 VS 微观 VS 加权 VS 样本 F1 分数

在 sklearn.metrics.f1_score 中,f1 分数有一个名为“average”的参数。宏观、微观、加权和样本是什么意思?请详细说明,因为在文档中,没有正确解释。或者简单地回答以下问题:

  1. 为什么“样本”是多标签分类的最佳参数?
  2. 为什么微最适合不平衡的数据集?
  3. 加权和宏观有什么区别?

python metrics machine-learning python-3.x scikit-learn

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

简单公共和私有(服务)方法上的 Micrometer @Timed 注释

我正在尝试使用千分尺注释应用普罗米修斯指标@Timed。我发现它们只适用于控制器端点,而不适用于“简单”的公共和私有方法。

给出这个例子:

@RestController
public class TestController {

    @GetMapping("/test")
    @Timed("test-endpoint") //does create prometheus metrics
    public String test() {
        privateMethod();
        publicMethod();
        return "test";
    }

    @Timed("test-private") //does NOT create prometheus metrics
    private void privateMethod() {System.out.println("private stuff");}

    @Timed("test-public") //does NOT create prometheus metrics
    public void publicMethod() {System.out.println("public stuff");}
}
Run Code Online (Sandbox Code Playgroud)

创建以下指标:

...
# HELP test_endpoint_seconds  
# TYPE test_endpoint_seconds summary
test_endpoint_seconds_count{class="com.example.micrometerannotationexample.TestController",exception="none",method="test",} 1.0
test_endpoint_seconds_sum{class="com.example.micrometerannotationexample.TestController",exception="none",method="test",} 0.0076286
# HELP test_endpoint_seconds_max  
# TYPE test_endpoint_seconds_max gauge
test_endpoint_seconds_max{class="com.example.micrometerannotationexample.TestController",exception="none",method="test",} 0.0076286
...
Run Code Online (Sandbox Code Playgroud)

没有找到@Timed("test-private")和 的指标@Timed("test-public"),这是为什么?


注意:我在这个 github thread上读到,Spring …

java metrics spring-boot prometheus spring-micrometer

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

如何解释代码度量(由SourceMonitor计算)

在阅读了"计算代码指标"问题的答案后,我安装了工具SourceMonitor并计算了一些指标.

但我不知道如何解释它们.

指标的"好"值是多少?

  • "分支声明百分比"
  • "每班的方法"
  • "每种方法的平均声明"
  • "最大方法或功能复杂性"

我在文档中找不到任何提示,有人可以帮助我吗?

metrics source-monitor

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

为什么这个可维护性指数会增加?

如果有人能够根据Visual Studio的Code Metrics规则向我解释以下两段代码之间的区别,我将不胜感激.如果我不将所有内容封装在内,为什么可维护性指数会略有增加using ( )

样本1(MI分数为71)

public static String Sha1(String plainText)
{
    using (SHA1Managed sha1 = new SHA1Managed())
    {
        Byte[] text = Encoding.Unicode.GetBytes(plainText);
        Byte[] hashBytes = sha1.ComputeHash(text);
        return Convert.ToBase64String(hashBytes);    
    }
}
Run Code Online (Sandbox Code Playgroud)

样本2(MI分数为73)

public static String Sha1(String plainText)
{
    Byte[] text, hashBytes;
    using (SHA1Managed sha1 = new SHA1Managed())
    {
        text = Encoding.Unicode.GetBytes(plainText);
        hashBytes = sha1.ComputeHash(text);
    }
    return Convert.ToBase64String(hashBytes);   
}
Run Code Online (Sandbox Code Playgroud)

我理解指标在更广泛的背景和理解之外是没有意义的,程序员应该行使自由裁量权.虽然我可以将分数提高到76 return Convert.ToBase64String(sha1.ComputeHash(Encoding.Unicode.GetBytes(plainText))),但我不应该.我显然只是在玩数字,而且在那一点上它并不是真正的可读性或可维护性.我很好奇这个案例增加背后的逻辑是什么.这显然不是行数.

c# refactoring metrics code-metrics

15
推荐指数
3
解决办法
9019
查看次数

使用Mercurial,我如何衡量个人贡献?

我的团队正在使用Mercurial,我想知道每个团队成员的相对贡献.我知道我们无法通过代码行来衡量生产力,但我想看看每个人是否至少贡献了一些东西,即使它后来被其他人覆盖了.因此,我不仅希望看到谁负责当前版本(Mercurial annotate),而是通过所有修订递归执行此操作,理想情况下使用可轻松可视化或转储到电子表格中的输出.

有小费吗?

mercurial metrics measurement

15
推荐指数
2
解决办法
3568
查看次数

打字稿中是否有用于静态代码分析的好工具?

我们一直在寻找测量TypeScript代码质量的好工具.主要是,我们感兴趣的是测量Cyclomatic Complexity,LCOM,不稳定性和类似指标.用于可视化模块之间的依赖关系的工具也很不错.

一种"NDepend for typescript"会很棒 - 但是我们找不到类似的东西......

有人能指出我们提供某些此类功能的工具的方向吗?

dependencies metrics static-analysis code-metrics typescript

15
推荐指数
2
解决办法
7927
查看次数

如果仪表可以充当计数器,为什么 Prometheus 中既有计数器又有仪表?

Counter和之间做出决定时GaugePrometheus 文档指出

在计数器和仪表之间进行选择,有一个简单的经验法则:如果值可以下降,它就是一个仪表。计数器只能上升(并重置,例如当进程重新启动时)。

它们似乎涵盖了重叠的用例:您可以使用只会增加的仪表。那么为什么要首先创建 Counter 指标类型呢?为什么不简单地将 Gauges 用于两者?

monitoring metrics prometheus

15
推荐指数
3
解决办法
8328
查看次数

LOC计数是否包括测试和评论?

虽然LOC(#行代码)是对代码复杂性的有问题的衡量,但它是最受欢迎的,并且在非常仔细地使用时,可以提供对代码库的至少相对复杂性的粗略估计(即,如果一个程序是10KLOC)另一个是100KLOC,用相同的语言编写,由大致相同能力的团队编写,第二个程序几乎肯定要复杂得多).

在计算代码行时,您是否更愿意计算注释?测试怎么样?

我见过各种方法.像cloc和sloccount这样的工具允许包含或排除注释.其他人认为评论是代码的一部分及其复杂性.

单元测试存在同样的困境,有时可以达到测试代码本身的大小,甚至超过它.

我已经看到了整个范围内的方法,从仅计算"操作"非注释非空白行到"XXX行测试,注释代码",这更像是在所有代码文件中运行"wc -l"项目".

您的个人偏好是什么?为什么?

metrics code-metrics

14
推荐指数
2
解决办法
4118
查看次数