china-oui
2009-02-03, 23:59
在下是Matlab的初学者,最近编写了一个小程序,现在遇到计算速度瓶颈的问题,对于Matlab的并行运算不甚了解,望高手指点一二,谢谢,
程序大致如下:
在一个规则的网络中(比如100行by100列的‘十’字型网络,总共有10000个单元),能量物质(如营养物质)在网络中按照一定的规律(物质的浓度梯度)传递,因此每个单元格内的物质浓度与其相连的邻居单元格内的浓度相关;
在每个单元格内生长有生物,所有的生物可在网格中按照一定规律自由穿行;
每隔一秒钟计作一个模拟的时间间隔;
这样的话若要模拟数年之久的时间,所需要的运算时间会很长;
因此可否分成并行的数个模型来运算(比如100个并行的程序,即把100by100的网格分成100个10by10的网格,然后在每运算一步之后进行边界条件的运算:即两个相连的10by10的小网格之间的物质传递和生物传递);
望各位智者帮忙分析分析,若有更好建议,不甚感激!
oui
程序大致如下:
在一个规则的网络中(比如100行by100列的‘十’字型网络,总共有10000个单元),能量物质(如营养物质)在网络中按照一定的规律(物质的浓度梯度)传递,因此每个单元格内的物质浓度与其相连的邻居单元格内的浓度相关;
在每个单元格内生长有生物,所有的生物可在网格中按照一定规律自由穿行;
每隔一秒钟计作一个模拟的时间间隔;
这样的话若要模拟数年之久的时间,所需要的运算时间会很长;
因此可否分成并行的数个模型来运算(比如100个并行的程序,即把100by100的网格分成100个10by10的网格,然后在每运算一步之后进行边界条件的运算:即两个相连的10by10的小网格之间的物质传递和生物传递);
望各位智者帮忙分析分析,若有更好建议,不甚感激!
oui