小编ebo*_*ebo的帖子

我需要加快功能.我应该使用cython,ctypes还是其他什么?

通过编写基因编程类型的应用程序,我学习Python很有趣.

我在本网站上得到了Torsten Marek,Paul Hankin和Alex Martelli的一些很好的建议.

该计划有4个主要功能:

  • 生成(随机)表达式树.
  • 评估树的适应性
  • 杂交
  • 变异

因为所有生成,杂交和变异调用'评估适应性'.它是最繁忙的功能,是速度上的主要瓶颈.

由于遗传算法的本质,它必须搜索一个巨大的解决方案空间,因此越快越好.我想加快这些功能.我将从健身评估员开始.我的问题是最好的方法是什么.我一直在研究cython,ctypes和'链接和嵌入'.他们对我来说都是新手,现在已经超出了我的范围,但我期待着学习一个,最终学习所有这些.

'适应度函数'需要将表达式树的值与目标表达式的值进行比较.因此它将包含一个后缀评估器,它将以后缀顺序读取树.我有python中的所有代码.

我需要建议我现在应该学习和使用:cython,ctypes或链接和嵌入.

谢谢.

python ctypes cython

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

使用MPI-2的RMA函数在Fortran程序中进行分段错误

只要包含MPI_GET调用,以下简短的Fortran90程序就会崩溃.等级1尝试从等级0读取值并在MPI_WIN_UNLOCK中挂起.排名0尝试在MPI_BARRIER中发生崩溃并出现分段错误.

我反复检查命令的语法,但它们似乎是正确的.C/C++中的类似代码在同一系统上运行.

我正在使用OpenMPI 1.4.3和gfortran 4.4.5.

PROGRAM mpitest
USE mpi
IMPLICIT NONE

INTEGER :: ierr, npe, rnk, win
INTEGER (KIND=MPI_ADDRESS_KIND) lowerbound, sizeofreal
REAL :: val = 1.0, oval = 2.0

CALL MPI_INIT( ierr )
CALL MPI_COMM_RANK( MPI_COMM_WORLD, rnk, ierr )
CALL MPI_COMM_SIZE( MPI_COMM_WORLD, npe, ierr )

CALL MPI_TYPE_GET_EXTENT(MPI_REAL, lowerbound, sizeofreal, ierr)

CALL MPI_WIN_CREATE(val, sizeofreal, sizeofreal, MPI_INFO_NULL, MPI_COMM_WORLD, win, ierr)

IF( rnk .EQ. 1 ) THEN
   CALL MPI_WIN_LOCK( MPI_LOCK_SHARED, 0, 0, win, ierr )
   CALL MPI_GET( oval, 1, MPI_REAL, 0, 0, 1, …
Run Code Online (Sandbox Code Playgroud)

fortran mpi mpi-rma

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

标签 统计

ctypes ×1

cython ×1

fortran ×1

mpi ×1

mpi-rma ×1

python ×1