MATLAB分布式并行计算环境(三) (转自高山流水)

MATLAB分布式并行计算环境()

4. 在交互式并行环境中工作

Parallel Computing Toolbox(并行计算工具箱)扩展了 MATLAB 交互式环境,可以使用熟悉的 MATLAB 环境来建立原型、开发任务并行和数据并行应用程序。 matlabpool 命令可为分配一组专用的计算资源。它可将您的 MATLAB 会话连接至一个 MATLAB worker 池,这些worker 既可在桌面上本地运行,又可在计算机集群上运行。此外,它还可以建立一个交互式并行执行环境。在该环境中,用户可以从 MATLAB 命令提示符执行并行的 MATLAB 代码,并且在计算结束后立即得到结果。在该环境中,并行的编程结构(例如 parfor spmd)会自动检测是否有 worker,并在MATLAB 会话与worker 之间分发计算和数据。
    并行命令窗口 (pmode) MATLAB 命令窗口的扩展,可建立一个数据并行的执行环境,在该环境中,用户可以使用分布式数组、关联的并行函数,以及消息传递函数。在并行提示符下发出的命令会在所有参与的 worker 上同时执行,并立即返回结果,这样,用户便可以更好地在每个步骤追踪应用程序在整个多处理器系统中的行为。此外,还可以将命令收集到 MATLAB 函数中,并将其提交用以脱机执行。

5. 在批处理环境中工作

利用 Parallel Computing Toolbox(并行计算工具箱),用户可以使用批处理环境来脱机执行程序,从而在执行大型 MATLAB Simulink 应用程序时,自如地将 MATLAB 客户端会话用于其他活动。等待应用程序执行并返回结果时,用户也可以关闭 MATLAB 客户端会话。
    利用批处理功能,可脱机执行 MATLAB 脚本。它提供了一种在 MATLAB 客户端和 worker 工作区之间传输数据的机制,免除了在多个工作区分别管理数据的需要。利用 Configurations Manager(配置管理器),可将程序执行导向使用四个本地 worker 的工作站,或使用任何scheduler 和任意数量 worker 的集群。

此外,该工具箱还提供了作业和任务对象。这些对象提供了一种较低级但更通用的机制,用以在批处理环境中执行并行 MATLAB 应用程序。批处理函数以及作业和任务对象都可用来减少执行串行 MATLAB 程序时,从桌面 MATLAB 会话向worker 传输数据的负载。

 

MATLAB分布式并行计算环境(三)

3.2.2 分布式计算引擎(服务器)(MDCE/S

MATLAB Distributed Computing Server可以使并行计算工具箱应用程序得到扩展,从而可以使用运行在任意数量计算机上的任意数量的workerMATLAB Distributed Computing Server还支持交互式和批处理工作流。此外,使用 Parallel Computing Toolbox 函数的MATLAB 应用程序还可利用 MATLAB CompilerMATLAB 编译器)编入独立的可执行程序和共享软件组件,以进行免费特许分发。这些可执行应用程序和共享库可以连接至 MATLAB Distributed Computing Serverworker,并在计算机集群上执行MATLAB同时计算,加快大型作业执行速度,节省运行时间。
    MATLAB Distributed Computing Server 支持多个调度程序:MathWorks 作业管理器(随产品提供)或任何其他第三方调度程序,例如 Platform LSFMicrosoft Windows Compute Cluster ServerCCS)、Altair PBS Pro,以及TORQUE
    使用工具箱中的 Configurations Manager(配置管理器),可以维护指定的设置,例如调度程序类型、路径设置,以及集群使用政策。通常,仅需更改配置名称即可在集群间或调度程序间切换。
    MATLAB Distributed Computing Server 会在应用程序运行时在基于用户配置文件的集群上动态启用所需的许可证。这样,管理员便只需在集群上管理一个服务器许可证,而无需针对每位集群用户在集群上管理单独的工具箱和模块集许可证。
    作业(Job)是在MATLAB中大量的操作运算。一个作业可以分解不同的部分称为任务(Task),客户可以决定如何更好的划分任务,各任务可以相同也可以不同。MALAB中定义并建立作业及其任务的会话(Session)被称为客户端会话,通常这是在你用来编写程序那台机器上进行的。客户端用并行计算工具箱来定义和建立作业及其任务,MDCE通过计算各个任务来执行作业并负责把结果返回客户端。作业管理器(Job Manager)是MDCE的一个组成部分,用来协调各个作业及其任务在各个woker上的执行。如图3-6所示,MATLAB客户端(Client)与调度或作业管理器(Sheudler/Jobmanager)和计算节点(Worker)之间的关系。

 

MATLAB分布式并行计算环境(三)

在一个机群(Cluster)环境中可以由多个客户端同时向调度管理器提交作业,在,中调度器负责作业对列排序等待、分发给各节点worker,并将结果归约返回给客户端,如图3-7 (a) 所示;在一个比较大而复杂网络机群中,还可以存在多个客户端与多个作业调度,一个客户可以向多个不同作业调度器提交多个作业,

 

 

MATLAB分布式并行计算环境(三)


MATLAB分布式并行计算环境(三)

<think>嗯,用户想了解Excel中的VLOOKUP函数的用法和参数含义。首先,我需要回忆一下VLOOKUP的基本结构。VLOOKUP是垂直查找函数,用于在表格的首列查找指定的值,然后返回该行中指定列的数据。它的四个参数分别是查找值、表格范围、列索引号和匹配模式。 接下来,我得确认每个参数的具体作用。第一个参数是lookup_value,也就是用户要查找的值,比如产品ID或者姓名。第二个参数是table_array,即查找的范围,这里要注意的是,查找值必须位于这个范围的第一列,否则函数无法正确工作。第三个参数是col_index_num,也就是用户想要返回的数据在表格范围中的第几列,这个列数是从表格范围的第一列开始算起的,不是整个工作表的列。第四个参数是range_lookup,决定是精确匹配还是近似匹配,通常用FALSE或0来指定精确匹配,避免错误。 然后,用户可能需要一个具体的例子来理解如何使用。比如,假设有一个产品价格表,用户想根据产品ID查找对应的价格。这时候,VLOOKUP就可以在ID列查找,然后返回价格列的数据。同时,要提醒用户注意表格范围最好使用绝对引用,比如$A$2:$C$100,这样在拖动公式时范围不会变化。 可能遇到的问题也需要考虑。比如,如果查找值不在表格的第一列,或者列索引号超过了表格的列数,函数会返回错误。此外,数据格式不一致也可能导致问题,比如查找值是数字,而表格中是文本格式的数字,这时候需要统一格式。还有,当出现#N/A错误时,可能是查找值不存在,或者匹配模式设置不正确,需要检查参数是否正确。 用户可能还会问到如何避免常见的错误,比如部分数据匹配出错的情况。这时候需要检查是否有多余的空格,或者数据格式不一致,或者表格范围没有锁定导致拖动时偏移。此外,XLOOKUP作为VLOOKUP的升级版,可能在某些情况下更方便,比如可以向左查找或者返回多列数据,这也是可以提及的内容。 最后,整理步骤,从基础语法到参数说明,再到具体案例,逐步引导用户理解如何使用VLOOKUP函数。同时,提供常见错误和解决方法,帮助用户在实际应用中避免问题。如果有必要,还可以比较VLOOKUP和其他查找函数的区别,比如HLOOKUP或XLOOKUP,但根据用户的问题,主要集中在VLOOKUP本身即可。</think>### Excel VLOOKUP函数详解 #### 一、基础语法与参数说明 VLOOKUP函数的语法为: $$=VLOOKUP(lookup\_value, table\_array, col\_index\_num, [range\_lookup])$$ 包含4个参数: 1. **lookup_value**(必填):要查找的值(如单元格引用或具体值) 2. **table_array**(必填):包含数据的表格范围(必须包含查找列和返回列) 3. **col_index_num**(必填):返回值所在列的序号(从table_array第一列开始计数) 4. **range_lookup**(可选):匹配类型 - `TRUE`/`1`:近似匹配(默认值,需数据升序排列) - `FALSE`/`0`:精确匹配(常用选项) [^1][^2] #### 二、使用步骤演示(工资表查询案例) 假设需要根据员工编号查询工资: 1. 建立查询单元格(如`B12`) 2. 输入公式: ```excel =VLOOKUP(A12, $A$2:$D$100, 4, 0) ``` - `A12`:待查询的员工编号 - `$A$2:$D$100`:锁定数据区域(绝对引用) - `4`:返回第4列(工资列) - `0`:精确匹配 [^2][^3] #### 三、常见错误与解决方法 | 错误现象 | 原因 | 解决方案 | |---------|------|---------| | #N/A | 查找值不存在 | 检查数据源或改用`IFERROR`容错 | | #REF! | 列序号超出范围 | 确认col_index_num ≤ 表格列数 | | 部分匹配失败 | 数据格式不一致 | 统一数值/文本格式 | | 结果错位 | 表格未锁定 | 使用`$`符号固定区域引用 | [^3][^4] #### 四、进阶技巧 1. **多条件查询**: 使用辅助列合并多个条件字段 ```excel =VLOOKUP(A2&B2, $D$2:$F$100, 3, 0) ``` 2. **通配符匹配**: `"*"`匹配任意字符,`"?"`匹配单个字符 ```excel =VLOOKUP("张*", $A$2:$C$100, 3, 0) ``` 3. **跨表查询**: 引用其他工作表数据 ```excel =VLOOKUP(A2, Sheet2!$A$2:$D$100, 4, 0) ``` [^1][^4]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值