【问题标题】:Restrict Matlab's parallel toolbox from using all cores限制 Matlab 的并行工具箱使用所有内核
【发布时间】:2012-07-03 02:09:27
【问题描述】:

是否有可能拒绝 Matlab 访问所有内核?目前机器上有 8 个,但我想将 Matlab 的使用量减少到每个用户 3 个,这样一个用户就不会在所有 8 个上开始工作,从而在此过程中减慢其他用户的速度。

我没有分布式计算服务器许可证...只是普通的旧并行 proc 工具箱

【问题讨论】:

    标签: parallel-processing matlab


    【解决方案1】:

    无法在 MATLAB 中强制实施严格限制,但您可以设置本地调度程序的“ClusterSize”属性。不幸的是,这必须为每个用户完成。除此之外,您需要使用操作系统功能,但我不确定是否存在这样的事情。

    【讨论】:

      【解决方案2】:

      您可以通过在提交之前设置作业对象的MaximumNumberOfWorkers 属性来自愿限制用于作业的工人数量。

      jobMgr = findResource(...appropriate parameters for your job manager here...);
      job = createJob(jobMgr);
      
      set(job, 'MaximumNumberOfWorkers', 3);
      
      % create some tasks and add them to the job here
      
      submit(job);
      waitForState(job, 'finished');
      results = getAllOutputArguments(job);
      

      【讨论】:

        【解决方案3】:

        当您说每个用户时,您是否暗示多个用户能够一次提交到这台机器?这肯定会使事情复杂化,因为我有一些示例代码可能会揭示一些您不熟悉的命令,这些命令将帮助您实现目标。

        这是我用来尽可能多地使用内核的一些代码,最多 8 个。

        ncores = feature('numCores'); nworkers = min(8,ncores);

        【讨论】:

        • 是的...没有系统范围的作业管理器正在运行。它只是为所有用户安装了 matlab 的服务器。因此,在本地调度程序允许的情况下,每个用户都可以启动自己的 matlab 实例并请求最多 8 个内核。当多个用户开始这样做时,就会成为一个问题。
        猜你喜欢
        • 2020-08-27
        • 2013-01-13
        • 2016-05-10
        • 2011-11-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-26
        • 1970-01-01
        相关资源
        最近更新 更多