小编Sky*_*ker的帖子

如何将BGL的vertex_descriptor作为int访问

我有一个邻接列表,如下所示.此时我需要访问vertex_descriptor作为int类型.我怎么能这样做tvertex source = ...; int source_as_int = ???source???我记得之前碰到这个问题并解决了它但是不记得BGL文档如何使用它作为参考是无用的,他们应该试着看看并向Javadocs学习.

另一种可能性是使用该vertex_descriptor类型的可能成员函数或其他一些全局BGL函数用于此目的...一个人永远不知道在哪里寻找这个并且它们似乎在制作全局函数或成员函数之间随机选择如果你问我,直觉设计会失败.

typedef adjacency_list_traits<setS, setS, bidirectionalS> ttraits;

typedef adjacency_list<setS, setS, bidirectionalS,
        // vertex properties
        property<vertex_color_t, default_color_type>,
        // edge properties
        property<edge_capacity_t, int,
        property<edge_residual_capacity_t, int,
        property<edge_reverse_t, ttraits::edge_descriptor> > >, no_property, vecS> tbgl_adjlist_bidir;

typedef graph_traits<tbgl_adjlist_bidir>::vertex_descriptor     tvertex;
typedef graph_traits<tbgl_adjlist_bidir>::edge_descriptor       tedge;
typedef property_map<tbgl_adjlist_bidir, edge_capacity_t>::type tedge_capacity_map;
typedef property_map<tbgl_adjlist_bidir, edge_reverse_t>::type  treverse_edge_map;
typedef property_map<tbgl_adjlist_bidir, vertex_color_t>::type  tvertex_color_map;
typedef graph_traits<tbgl_adjlist_bidir>::out_edge_iterator     tout_edge_iterator;
typedef graph_traits<tbgl_adjlist_bidir>::in_edge_iterator      tin_edge_iterator;
Run Code Online (Sandbox Code Playgroud)

c++ boost

4
推荐指数
1
解决办法
2860
查看次数

有条件地将文件添加到C++项目中的库中

我有一个CMake C++项目,它包含一个库和多个可执行应用程序.该库包含许多文件,并且有条件地取决于用户是否想要GPU加速,库中的文件列表应该是不同的,例如

if (GPU_ACCELERATED) 
   add_library(my_library
      file1.h
      file1.cc
      gpu_file2.h
      gpu_file2.cc
   )
else()
   add_library(my_library
      file1.h
      file1.cc
   )
endif()
Run Code Online (Sandbox Code Playgroud)

这是一种方法,但问题是我有大量的文件,file1.h file1.cc因此我非常强烈希望避免像这样重复文件列表.我宁愿喜欢这样的东西(但不是),例如

add_library(my_library
    file1.h
    file1.cc
    if (GPU_ACCELERATED) 
       gpu_file2.h
       gpu_file2.cc
    endif()
 )
Run Code Online (Sandbox Code Playgroud)

c++ cmake

4
推荐指数
1
解决办法
2508
查看次数

具有多个节点的hadoop MapReduce异常

我包含一个导致问题的自包含命令序列.我有一个正在进行中的群集配置.值得注意的是,当我没有在yarn-site.xml和中配置所有资源和历史管理器时,这个相同的示例工作正常mapred-site.xml.

问题Cannot create directory /user/deploy/QuasiMonteCarlo_1391523248477_997612342/in似乎是错误的文件路径前缀,因为相关的用户目录是:

  • /home/deploy/
  • /home/deploy/hdfs
  • /home/deploy/hdfs/name
  • /home/deploy/hdfs/data

那它怎么试图访问/user/deploy

deploy@olympus:~$ start-all.sh 
This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh
Starting namenodes on [olympus]
olympus: starting namenode, logging to /opt/dev/hadoop/2.2.0/logs/hadoop-deploy-namenode-olympus.out
hera: starting datanode, logging to /opt/dev/hadoop/2.2.0/logs/hadoop-deploy-datanode-hera.out
olympus: starting datanode, logging to /opt/dev/hadoop/2.2.0/logs/hadoop-deploy-datanode-olympus.out
zeus: starting datanode, logging to /opt/dev/hadoop/2.2.0/logs/hadoop-deploy-datanode-zeus.out
poseidon: starting datanode, logging to /opt/dev/hadoop/2.2.0/logs/hadoop-deploy-datanode-poseidon.out
Starting secondary namenodes [0.0.0.0]
0.0.0.0: starting secondarynamenode, logging to /opt/dev/hadoop/2.2.0/logs/hadoop-deploy-secondarynamenode-olympus.out
starting yarn daemons
starting resourcemanager, logging to …
Run Code Online (Sandbox Code Playgroud)

hadoop

4
推荐指数
2
解决办法
4166
查看次数

错误org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode:doCheckpoint中的异常

我在群集设置中使用Hadoop 2.2.0并且我反复得到以下错误,异常是在文件名称节点olympus中生成的/opt/dev/hadoop/2.2.0/logs/hadoop-deploy-secondarynamenode-olympus.log例如

2014-02-12 16:19:59,013 INFO org.mortbay.log: Started SelectChannelConnector@olympus:50090
2014-02-12 16:19:59,013 INFO org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode: Web server init done
2014-02-12 16:19:59,013 INFO org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode: Secondary Web-server up at: olympus:50090
2014-02-12 16:19:59,013 INFO org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode: Checkpoint Period   :3600 secs (60 min)
2014-02-12 16:19:59,013 INFO org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode: Log Size Trigger    :1000000 txns
2014-02-12 16:20:59,161 ERROR org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode: Exception in doCheckpoint
java.io.IOException: Inconsistent checkpoint fields.
LV = -47 namespaceID = 291272852 cTime = 0 ; clusterId = CID-e3e4ac32-7384-4a1f-9dce-882a6e2f4bd4 ; blockpoolId = BP-166254569-192.168.92.21-1392217748925.
Expecting respectively: -47; 431978717; 0; CID-85b65e19-4030-445b-af8e-5933e75a6e5a; …
Run Code Online (Sandbox Code Playgroud)

hadoop

4
推荐指数
1
解决办法
7976
查看次数

在Scala中,检查数组是否单调的有效方法是什么?

我有一个数组val x : Array[Double],想检查作为x(i) <= x(i+1)所有功能的前提i。使用Scala中的函数式编程实现此目的的方式是什么。我寻找例如foldLeftfoldRight但它们积累而不是访问每一对相邻元素。

scala

4
推荐指数
1
解决办法
343
查看次数

Ubuntu 14.04 配置:错误:“libxml 未找到”

尝试按如下方式安装 XML 包时出现错误configure: error: "libxml not found"。看来 R 正在从 Anaconda 获取 libxml2 安装。我怎样才能解决这个问题?

\n\n
R version 3.4.4 (2018-03-15) -- "Someone to Lean On"\nCopyright (C) 2018 The R Foundation for Statistical Computing\nPlatform: x86_64-pc-linux-gnu (64-bit)\n\n> install.packages("XML")\nInstalling package into \xe2\x80\x98/home/bravegag/R/x86_64-pc-linux-gnu-library/3.4\xe2\x80\x99\n(as \xe2\x80\x98lib\xe2\x80\x99 is unspecified)\ntrying URL \'https://cloud.r-project.org/src/contrib/XML_3.98-1.19.tar.gz\'\nContent type \'application/x-gzip\' length 1600788 bytes (1.5 MB)\n==================================================\ndownloaded 1.5 MB\n\n* installing *source* package \xe2\x80\x98XML\xe2\x80\x99 ...\n** package \xe2\x80\x98XML\xe2\x80\x99 successfully unpacked and MD5 sums checked\nchecking for gcc... gcc\nchecking whether the C compiler works... yes\nchecking for C compiler default output …
Run Code Online (Sandbox Code Playgroud)

xml r xml-libxml ubuntu-14.04

4
推荐指数
2
解决办法
8739
查看次数

有没有办法将 pandas 数据框打印为可复制代码?

我时不时地需要调试代码并到达为新测试用例找到有效的“oracle”或“fixture”的程度,然后需要将数据帧打印到控制台并将其转换为数据帧初始化代码。有没有办法将数据框打印成可复制的代码?我知道我可以将其转储到一个文件中,然后使用该文件作为测试用例的输入,对于很长的数据帧来说应该是这种情况,但对于小的数据帧来说,能够将它们复制粘贴到一个测试用例中会很好。测试套件...

python pandas

4
推荐指数
1
解决办法
1012
查看次数

如何将功能“附加”到 Python 中的对象,例如 Pandas DataFrame?

也许这更像是一个理论语言问题,而不是熊猫本身。我有一组函数扩展,我想“附加”到例如 Pandas DataFrame 而不显式调用实用程序函数并将 DataFrame 作为参数传递,即具有语法糖。扩展 Pandas DataFrame 也不是一种选择,因为需要定义和链接 DataFrame 构造函数的不可访问类型,例如AxesDtype

在 Scala 中,可以定义一个隐式类来将功能附加到一个否则不可用或过于复杂而无法初始化的对象上,例如 String 类型不能在 Java AFAIR 中扩展。例如,以下将函数动态附加到 String 类型https://www.oreilly.com/library/view/scala-cookbook/9781449340292/ch01s11.html

scala> implicit class StringImprovements(s: String) {
    def increment = s.map(c => (c + 1).toChar)
}

scala> val result = "HAL".increment   
result: String = IBM
Run Code Online (Sandbox Code Playgroud)

同样,我希望能够做到:

# somewhere in scope
def lexi_sort(df):
    """Lexicographically sorts the input pandas DataFrame by index and columns""" 
    df.sort_index(axis=0, level=df.index.names, inplace=True)
    df.sort_index(axis=1, level=df.columns.names, inplace=True)
    return df

df = pd.DataFrame(...)
# some …
Run Code Online (Sandbox Code Playgroud)

python scala pandas

4
推荐指数
1
解决办法
77
查看次数

访问未初始化的值会导致性能下降吗?

我正在优化矩阵数值热点.

目前,我正在进行阻塞和循环展开以提高性能.但是,我故意避免剥掉边界.相反,我让阻塞步骤溢出,当然,算法然后触及未初始化的值.

然而,矩阵被慷慨地预先分配以应对溢出,所以我实际上并不是非法访问内存位置.

剥皮有几个原因:

  • 怠惰
  • 由于剥离边框的非常糟糕的位置,性能受到打击.
  • 避免复杂的边框剥离代码.

但是,我想知道这些触及未初始化值的溢出访问是否会导致性能下降?

我可以预见地知道未初始化的访问发生在哪里,并且它们也通过valgrind报告.我还使用英特尔的VTune对代码进行了分析,并且看不出有任何迹象表明由此导致的性能下降.

c++ optimization performance initialization micro-optimization

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

我们应该在不同的调用中重用cublasHandle_t吗?

我使用的是最新版本CUDA 5.5和新CUBLAS有状态的味道,每一个功能需要一个cublasHandle_t

  cublasHandle_t handle;
  cublasCreate_v2(&handle);
  cublasDgemm_v2(handle, A_trans, B_trans, m, n, k, &alpha, d_A, lda, d_B, ldb, &beta, d_C, ldc);
  cublasDestroy_v2(handle);
Run Code Online (Sandbox Code Playgroud)

像某种类型那样尽可能多地重用这个句柄实例是一个好习惯,Session或者性能影响是如此之小以至于通过使用短生存句柄实例来降低代码复杂性更有意义,因此不断创建/销毁它?

cuda cublas

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