我试图分析英特尔Haswell的CPU(英特尔®酷睿™i7-4900MQ)与自上而下的微架构分析方法(TMAM),在各章B.1和B.4所述,在执行英特尔®64和IA-32架构优化参考手册.(如果需要,我将B.4中描述的Sandy Bridge公式调整为Haswell Microarchitecture.)
因此,我使用Perf执行性能计数器事件测量.有些结果我不明白:
CPU_CLK_UNHALTED.THREAD_P < CYCLE_ACTIVITY.CYCLES_LDM_PENDING
这仅适用于少数测量,但仍然很奇怪.PMU计数是否会停止CYCLE_ACTIVITY.CYCLES_LDM_PENDING?
CYCLE_ACTIVITY.CYCLES_L2_PENDING> CYCLE_ACTIVITY.CYCLES_L1D_PENDING
和CYCLE_ACTIVITY.STALLS_L2_PENDING>CYCLE_ACTIVITY.STALLS_L1D_PENDING这适用于所有测量.当L1D高速缓存未命中时,负载会转移到L2高速缓存,对吧?因此早先错过L2的负载也错过了L1.这里没有计算L1指令高速缓存,但是它的大小*_L2_PENDING是100倍甚至1000倍*_L1D_PENDING,可能不是这样.是否分别以某种方式测量了档位/周期?但是有这个公式:
%L2_Bound =
(CYCLE_ACTIVITY.STALLS_L1D_PENDING - CYCLE_ACTIVITY.STALLS_L2_PENDING) / CLOCKS
因此CYCLE_ACTIVITY.STALLS_L2_PENDING< CYCLE_ACTIVITY.STALLS_L1D_PENDING假定(公式的结果必须为正).(这个公式的另一个原因是它可能应该CYCLES代替STALLS.但是这不能解决上面描述的问题.)那么如何解释呢?
编辑:我的操作系统:Ubuntu 14.04.3 LTS,内核:3.13.0-65-通用x86_64,性能版本:3.13.11-ckt26
perf stat -e <events> <command> 许多不同的事件通常会返回这样的输出
127.352.815.472 r53003c [23,76%]
65.712.112.871 r53019c [23,81%]
178.027.463.861 r53010e [23,88%]
162.854.142.303 r5302c2 [24,05%]
...
Run Code Online (Sandbox Code Playgroud)
百分比记录是什么意思?
我想执行我的Flink Scala程序而不将结果写入文件.无法将结果保存DataSet到a中运行程序DataSink.所以我试过了<result dataset name>.writeAsText("file:///dev/null", WriteMode.OVERWRITE).那没用.发生以下错误:
> java.io.IOException: Output path 'file:/dev/null' could not be
> initialized. Canceling task... at
> org.apache.flink.api.common.io.FileOutputFormat.open(FileOutputFormat.java:228)
> at
> org.apache.flink.api.java.io.TextOutputFormat.open(TextOutputFormat.java:77)
> at
> org.apache.flink.runtime.operators.DataSinkTask.invoke(DataSinkTask.java:187)
> at org.apache.flink.runtime.taskmanager.Task.run(Task.java:584) at
> java.lang.Thread.run(Thread.java:745)
Run Code Online (Sandbox Code Playgroud)
有没有办法将DataSink与dev/null路径一起使用?
Flink默认使用哪些策略(散列,排序)对数据集进行缩小/分组(例如groupBy或reduce函数)?Flink使用哪些API函数
默认?
我正在测量Flink中的应用程序(WordCount)的内存使用情况ps -p TaskManagerPID -o rss.然而,结果没有任何意义.因为对于每个数据量(1MB,10MB,100MB,1GB,10GB),所使用的内存量相同.对于10GB数据,测量结果甚至小于10GB.TaskManager是否是测量内存使用量的错误过程?Flink Process Model的哪个进程负责内存分配?