本周文件交换精选

我们最好的用户提交

墨西哥人多线程

肖恩本周的选择是墨西哥人多线程通过Dirk-Jan克朗

本周我选择了一个如何编写多线程的例子墨西哥人的功能利用更多的计算核心。MEX函数允许您直接在MATLAB中包含C/ c++或Fortran代码。

因为我自己不写很多C代码(我通常作弊和使用MATLAB编码器)很高兴看到一个如何在MEX中完成特定任务的简单示例。Dirk-Jan显示了要包含的头文件(仅限Windows !)和在多个线程上执行的进程互斥锁他们之间更新一个百分比完成。

通过使用多线程,您可以加速C代码,而不必像使用多线程那样进行内存拷贝并行计算.我做了很多并行计算,但有时被问及如何做多线程和并行计算一起。如果要运行的作业少于可用核心数,或者如果内存需求很高,则可能需要同时执行这两种操作。这是一个很好的例子。您可以编译MEX函数,然后在您喜欢的并行结构中调用它。当然,许多MATLAB函数已经是多线程的,所以它将隐式地发生。

下面是我运行时的任务管理器广场你可以看到不同的线程在运行。广场同时也更新了命令行的百分比。

y =广场(魔法(500));
Finished: 0 Finished: 0 Finished: 0: //剪接为简短//:Finished: 99 Finished: 99

你写C/ c++,需要把它拉进MATLAB吗?你在MEX中使用过多线程吗?有没有什么专业的技巧可以提供?

试试吧,让我们知道你的想法在这里或者离开评论Dirk-Jan。

发布与MATLAB®R2017b

|

评论

要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。