我希望获得与特定日期,一周中的一周和一个月相关的年份.我有可能从这种模式中获得多年.假设日期是15,月份是8月,星期几是星期二那么,我怎样才能找到有效的年份?有这个公式吗?
有没有办法使用原子操作从多个线程更新最大值?
说明性示例:
std::vector<float> coord_max(128);
#pragma omp parallel for
for (int i = 0; i < limit; ++i) {
int j = get_coord(i); // can return any value in range [0,128)
float x = compute_value(j, i);
#pragma omp critical (coord_max_update)
coord_max[j] = std::max(coord_max[j], x);
}
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,临界区同步访问整个向量,而我们只需要独立地同步对每个值的访问.
我正在做成两万维的内在产品,成千上万.值只能是0,1或2.因此可以将它们存储为字符.如果要在具有avx标志的CPU上进行矢量化计算,我预计它会快〜32倍.但问题是乘法会自动将字符转换为整数,即4个字节.因此,可以获得仅速度的最大8倍.可以达到32倍的速度吗?
顺便说一句,我使用的是Linux(Fedora 22迄今为止)和g ++ 5.1.