- 博客(9)
- 收藏
- 关注
原创 MPI组通信
介绍了MPI组通信, 包括一对多MPI_Bcast, MPI_Scatter, 多对一MPI_Gather,MPI_Gatherv 多对多MPI_Allgather, MPI_Allgatherv, MPI_Alltoall, MPI_Alltoallv
2024-05-09 15:42:36
767
原创 MPI点对点通讯
MPI点对点通信,包括阻塞通信: 标准发送(MPI_Send)由系统自行决定使用缓冲发送还是同步发送;缓冲发送(MPI_Bsend)使用预分配缓冲区,数据存到系统缓冲区后立即返回;同步发送(MPI_Ssend)确保数据到达接收进程后才返回;就绪发送(MPI_Rsend)在接收方调用接收函数时才真正发送数据。非阻塞通信
2024-05-08 10:02:16
777
原创 C++智能指针详解
智能指针如std::shared_ptr通过引用计数自动管理内存,避免内存泄漏。make_shared高效创建,只需一次内存分配。智能指针简化线程安全操作,内部计数更新通常原子,减少同步需求。
2024-04-29 20:08:25
201
原创 并发量增加时常见的三个问题
并发量增加时,Linux系统可能遇到三个问题:文件描述符限制(Too many open files)、端口分配问题(Cannot assign requested address)和连接跟踪限制(客户端连接数量上不去)。解决这些问题的方法包括临时或永久提高文件描述符限制,调整本地端口范围,以及增加系统跟踪的连接数上限。
2024-04-29 00:21:21
197
原创 C10K问题及常见的解决方案
本文探讨了解决C10K问题的多种网络编程模型,包括阻塞I/O配合多进程或多线程、线程池、非阻塞I/O结合事件通知以及Reactor模式。重点强调了非阻塞I/O与事件驱动模型的重要性,以及如何通过这些技术高效处理大量并发连接。同时,讨论了随着并发量增加,系统资源如文件句柄和内存的瓶颈问题,以及如何通过优化和模型选择来缓解这些瓶颈。
2024-04-29 00:18:44
598
原创 网络小工具
本文介绍了Linux系统中的一些常用网络工具及其用法:netstat: 查看网络连接和端口使用情况,如netstat -lntp查看TCP监听端口。lsof: 查找使用特定IP或端口的进程,如lsof -i :8080。nmap: 端口扫描工具,如nmap ip -p port。strace: 追踪进程的系统调用。telnet: 远程登录客户端,如telnet ip port测试服务。nc: 模拟服务器和客户端,进行端口连接和数据传输。tcpdump: 强大的抓包工具,如tcpdump -i
2024-04-29 00:12:10
936
原创 五种io模型
五种I/O模型包括阻塞I/O、非阻塞I/O、I/O多路复用、信号驱动I/O和异步I/O。阻塞I/O在数据未准备好时会等待,而非阻塞I/O会立即返回错误。I/O多路复用如select、poll和epoll允许同时监控多个I/O操作,提高并发效率。信号驱动I/O和异步I/O则在数据准备好时通过信号或回调通知应用。这些模型在用户态和内核态之间交互,影响着系统调用的效率和资源使用。
2024-04-29 00:10:35
211
1
原创 socket编程模型
这篇文章是关于socket网络编程的全面介绍,涵盖了TCP/IP协议中的基本概念,如IP地址、端口号、大端小端以及网络字节序。文章详细讲解了TCP服务器和客户端的创建、绑定、监听、三次握手连接过程,以及数据的读写和连接的关闭。此外,还探讨了多线程和多进程模型,以及IO多路复用技术,包括select、poll和epoll,这些技术允许服务器端单线程处理多个客户端连接。最后,文章通过伪代码展示了如何利用这些技术构建高效的网络服务器。
2024-04-29 00:08:24
1033
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人