关于paper中的一些硬件知识

一. OS中的event

Information in event traces from software systems can help developers with performance analysis, debugging and troubleshooting
1.事件的概念

已知软件系统中的event能够帮助开发者对系统进行性能分析、调试以及定位,那我们应该仔细考虑下"event"到底是什么?

事件是指系统中任意一个活动的发生,其特点有显著性(发生在系统感兴趣的特定领域),瞬时性(发生在一个特定的时间点)和原子性(发生或不发生)[百度百科'事件处理']

个人对其的理解,即软件系统中的事件(event)是指在系统运行过程中发生的重要操作或状态变化的记录或通知。这些事件可以包括用户操作、系统调用、错误信息、警告以及其他与系统运行相关的活动。事件通常由操作系统、应用程序或其他软件组件生成,并且被记录到事件跟踪日志中,以便后续分析和调试。

事件(Event)在软件系统中指的是在特定时间点发生的一个具有特定意义的行为或事态。这种行为或事态可以是用户的操作(如点击按钮、输入文本),系统状态的变化(如温度超过预设值),或程序执行的特定阶段(如函数开始执行、异常被抛出)。事件通常被用于触发特定的处理逻辑,以响应这一行为或状态的变化。

=>总结:

1.显著性:与系统状态或行为影响较大;

2.瞬时性:发生在某个特定的时间点,具有明确的时序性;

3.原子性/独立性:类比于数据库中的事务概念,一个操作要么发生要么不发生;

4.信息性:事件携带了关于发生行为或状态变化的信息,如发生时间、地点、参与对象和相关参数等,便于对其进行分析。

2.事件的类型

事件的类型有:

  1. 用户操作事件:包括用户在应用程序界面上的点击、输入、选择等操作,例如点击按钮、输入文本、选择菜单等。

  2. 系统调用事件:记录应用程序与操作系统之间的交互,包括系统调用的执行情况、参数、返回值等信息。

  3. 错误和异常事件:指示系统或应用程序发生错误、异常或崩溃的事件,例如内存访问错误、空指针异常、分段错误等。

  4. 日志事件:记录系统运行过程中的各种消息、警告和日志信息,用于跟踪系统的运行状态和调试问题。

  5. 性能事件:包括系统资源利用率、响应时间、吞吐量等性能指标的记录,用于性能分析和优化。

  6. 网络事件:记录网络通信过程中的各种事件,如连接建立、数据传输、断开连接等,用于网络监控和故障诊断。

Windows 7,第 1 部分中的核心操作系统事件 | Microsoft Learnicon-default.png?t=N7T8https://learn.microsoft.com/zh-cn/archive/msdn-magazine/2009/september/core-os-events-in-windows-7-part-1#%E4%BD%BF%E7%94%A8-windows-%E4%B8%8A%E7%9A%84%E5%B7%A5%E5%85%B7%E6%94%B6%E9%9B%86%E7%9A%84%E4%BA%8B%E4%BB%B6 更加深入的可以参考上述核心操作系统事件。

3.事件之间的联系

事件之间通过时间顺序、因果关系、聚合关系相互联系,事件之间的这些联系被定义成事件模式(更抽象?),我个人将其与事件流(实际发生)、事件序列视为一样的。

因为本身对于系统执行(线程执行)有一定的规律,因而事件模式分析是一种数据分析方法,用于识别和理解事件序列中的重要模式或趋势。在事件模式分析中,常常会应用统计方法、机器学习技术或专业领域知识来发现和解释这些模式。

4.事件的处理

事件处理是指系统对发生的事件进行响应和处理的过程。当系统中发生某个事件时,系统需要根据事件的类型和性质执行相应的操作,以保证系统的正常运行或实现特定的功能。

5.事件本身的意义
  1. 问题诊断与调试: 事件记录了系统运行过程中的各种操作和状态变化,可以用于诊断和调试系统中的问题和错误。通过分析事件日志,开发人员可以追踪问题的发生原因、定位错误的位置,并采取相应的修复措施。

  2. 性能分析与优化: 事件记录了系统的性能指标、资源利用情况以及响应时间等信息,可以用于分析系统的性能瓶颈,发现性能优化的机会,并采取措施改进系统的性能。

  3. 系统监控与管理: 事件记录了系统运行过程中的各种活动和状态变化,可以用于实时监控系统的运行状态、检测异常情况,并及时采取措施进行处理,确保系统的稳定性和可靠性。

  4. 用户行为分析与体验优化: 事件记录了用户在应用程序中的操作行为,可以用于分析用户的行为习惯、偏好和需求,优化用户体验,提高用户满意度和用户参与度。

总的来说,事件对于软件系统而言,是一种重要的信息载体,通过记录和分析事件,可以帮助开发人员理解系统的运行行为、诊断和解决问题,优化系统性能,提升用户体验,从而提高软件系统的质量和可靠性。

6.事件跟踪技术

事件跟踪指的是在软件系统执行过程中,自动记录一系列事件的技术。这些事件可以是函数调用、异常抛出、性能指标变化或是用户操作等。每一个事件都会被记录下其发生的时间、类型、参与对象和其他相关信息。

二. 消息传递机制

2.1 MPI的介绍

其称为信息传递接口,他的作用是通过 MPI 可以在不同进程间或不同的计算节点之间传递消息,从而可以并行地处理任务即并行计算。

2.2 和MPI的相关概念

(1) 通信域(communicating domain):通信域是指在并行计算或分布式系统中定义了一组能够相互发送消息的进程的集合(即进程组),而在这个集合中的进程可以通过特定的通信方式进行交流和数据交换。

      一个通信域对应一个进程组。

对于通信域而言,他可以被分为组内通信域和组间通信域:

组内通信域 (Intra-communication):组内通信域指的是在一个并行计算系统或分布式系统中,同一物理节点或计算节点上的进程之间可以进行直接通信的通信域。在这个通信域中,进程可以直接访问共享的本地资源,例如内存、文件系统等,并且通信延迟较低,通信效率较高。

组间通信域 (Inter-communication):组间通信域是一种特殊的通信域,该通信域包括了两个进程组,分属于两个进程组的进程之间通过组间通信域实现通信。 一般把调用进程所在的进程组称为本地进程组,而把另外一个称为远程进程组。

https://www.cnblogs.com/applesun0757/archive/2012/10/29/3085267.htmlicon-default.png?t=N7T8https://www.cnblogs.com/applesun0757/archive/2012/10/29/3085267.html

(2) 进程号(rank):在通信域中,每个参与通信的进程都会被分配一个唯一的序号,称为进程号或进程标识。进程号通常从 0 开始递增,每个进程都有一个唯一的进程号来标识自己在通信域中的位置。通过进程号,进程可以明确地指定发送消息的目标或接收消息的来源,从而实现点对点通信或广播等通信操作。

      这里需要强调一点的是进程与通信域的关系,对于单个进程他可以被划分到不同的通信域中,但在每一个通信域他均有对应的rank,通俗来讲就是每个进程是客观上唯一的(一个进程对应一个pid号);同一个进程可以属于多个进程组(每个进程在不同进程组中有个各自的rank号);同一个进程可以属于不同的进程组,因此也可以属于不同的通信域。

(3) 消息标签(tag):消息标签是用来对消息进行唯一标识的一个值或标签,发送者和接受者用来区分不同类型或不同含义的消息。其一般是一个整数值,但具体的取值范围和含义取决于通信库或通信协议的实现。

(4) 点对点通信(point-to-point communication):点对点通信是指在通信域中涉及一个发送者和一个接收者之间的通信操作。在点对点通信中,发送者明确指定接收者的进程号和消息标签,然后发送消息给接收者。接收者可以通过指定相同的消息标签来请求接收消息。这种通信方式常用于实现进程之间的直接数据交换或信息传递,是并行计算和分布式系统中的重要通信方式之一。

(5) 集体性通信(collective):某个进程可能需要跟其他所有进程进行通信,比如主进程想发一个广播给所有的从进程。在这种情况下,手动去写一个个点对点通信就显得很笨拙,而且这样会导致网络利用率很低。MPI 有专门的接口帮我们处理这里所有进程间的集体性(collective)通信。

举一个简单的例子来对其进行详细的说明,

想象一下,通信域就像是一个大型办公室,而进程就像是办公室里的工作人员。在默认的情况下,所有的人(进程)都在同一个大办公室(MPI_COMM_WORLD)里工作,每个人都可以和其他人交谈(通信)。

但是,有时候你可能想要把人分成小组,让他们在自己的小房间(自定义的通信域)里工作,这样他们就只能和自己房间里的人交谈,而不能和其他房间的人交谈。这有助于保证每个小组只关注自己的任务,并且小组成员之间的沟通更加方便快捷。

在MPI中,创建一个新的通信a域就像是给一组工作人员建立一个新的小房间。这样,当他们需要互相通信或者合作时,就只会在这个小团队内部进行,而不会被其他房间里的谈话或者活动所打扰。这在并行计算中是非常有用的,因为它让你可以更有效地组织和管理不同的计算任务。

MPI 与并行计算入门 - 知乎一、MPI 介绍MPI 全名叫 Message Passing Interface,即信息传递接口,作用是可以通过 MPI 可以在不同进程间传递消息,从而可以并行地处理任务,即进行 并行计算。需要注意的是,尽管我们偶尔会说使用 MPI 编写了…icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/590277732MPI通信域的理解_mpi comm-CSDN博客文章浏览阅读338次,点赞7次,收藏9次。当你启动一个MPI程序时,所有的进程都是在一个默认的通信域中,叫做 MPI_COMM_WORLD。但是,在某些情况下,你可能不希望所有进程都参与到某个特定的通信中,或者你可能想要将进程分组进行不同的任务。但是,有时候你可能想要把人分成小组,让他们在自己的小房间(自定义的通信域)里工作,这样他们就只能和自己房间里的人交谈,而不能和其他房间的人交谈。例如,如果你有一个并行程序,运行在16个进程上,你可能想要创建两个分别包含8个进程的通信域,每个通信域内的进程可以相互通信,但是不与另一个通信域中的进程通信。_mpi commhttps://blog.csdn.net/2301_79076726/article/details/135678394


1.参考了 ChatGPT (如有错误,请及时联系更正)

  • 23
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

S_h_a_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值