通过编写基因编程类型的应用程序,我学习Python很有趣.
我在本网站上得到了Torsten Marek,Paul Hankin和Alex Martelli的一些很好的建议.
该计划有4个主要功能:
因为所有生成,杂交和变异调用'评估适应性'.它是最繁忙的功能,是速度上的主要瓶颈.
由于遗传算法的本质,它必须搜索一个巨大的解决方案空间,因此越快越好.我想加快这些功能.我将从健身评估员开始.我的问题是最好的方法是什么.我一直在研究cython,ctypes和'链接和嵌入'.他们对我来说都是新手,现在已经超出了我的范围,但我期待着学习一个,最终学习所有这些.
'适应度函数'需要将表达式树的值与目标表达式的值进行比较.因此它将包含一个后缀评估器,它将以后缀顺序读取树.我有python中的所有代码.
我需要建议我现在应该学习和使用:cython,ctypes或链接和嵌入.
谢谢.
只要包含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)