MPI学习--MPICH并行环境搭建与配置
公司分布式环境使用MPI搭建,最近打算上手学习一下MPI,目前的主要目的是能够快速使用MPI的API将现有程序并行化,例子代码均用C语言实现。 环境: Ubuntu 20.04.6 下载MPICH 下载地址 下载下来的压缩包为: mpich-4.2.3.tar.gz 编译和安装 解压 tar zxvf mpich-4.2.3.tar.gz cd mpich-4.2.3 编...
公司分布式环境使用MPI搭建,最近打算上手学习一下MPI,目前的主要目的是能够快速使用MPI的API将现有程序并行化,例子代码均用C语言实现。 环境: Ubuntu 20.04.6 下载MPICH 下载地址 下载下来的压缩包为: mpich-4.2.3.tar.gz 编译和安装 解压 tar zxvf mpich-4.2.3.tar.gz cd mpich-4.2.3 编...
Linux环境下,通常会有这种情况: 多用户通过vnc访问指定IP,通常是公司服务器。不同用户执行firefox,firefox进程存在且仅能存在一个。 在不同的服务器上,home目录通过网络文件系统 NFS 等方式共享,因此导致Firefox 的配置文件也被共享,最终造成在一台服务器上打开firefox之后,其他服务器无法打开。 解决办法: firefo...
1. pretty-printer C++的STL容器的实现并不直观,直接使用gdb之类的debugger查看内存是需要周转多次才能看到具体的内容的。 在Visual Studio之类的IDE中内置了一些脚本,用来较为友好的显示容器内的元素。 GDB的pretty-printer脚本提供了类似的功能。 然而虽然pretty-printer是GDB官方提供的,但是并没有...
参考链接: Tcl/C混合编程:将Tcl嵌入你自己的程序 Tcl/Tk同Python一样,是一种高级语言。所不同的是,Python追求高大全,几乎我们能想得到的所有计算机领域都有Python的库,甚至如CUDA调用,符号计算,3D显示等都可以。Tcl却恰恰相反,它追求的是小巧精致,尽管没有那么华丽的库,但这也是它的优点。整个Tcl/tk库可以简单而无缝的嵌入到任何人自己...
1. shared_from_this 在解释std::enable_shared_from_this之前,先看一个std::shared_ptr典型用法: #include <memory> int main() { std::shared_ptr<int> pt1{ new int{ 10 } }; auto pt2{ pt1 }; } ...
CRTP(curiously recurring template pattern, 奇异递归模式),这个名字奇怪的模式,是一种将继承和静态多态结合的技术。 多态是一种用单个统一的符号将多种特定行为关联起来的能力,是面向对象编的基石,在 C++中它主要由继承和虚函数实现。由于这一机制主要(至少是一部分)在运行期间起作用,因此我们称之为动态多态(dynamic polymorphism...
最近在进行开发的时候,看到了一个之前没有见过的写法,即父类的引用指向子类对象,指针指向子类对象之前经常见,引用确实少见,因此记录一下: 例如现在有如下代码示意: Base tmp; Son son; Base& ref = son; ref = tmp; 当执行ref = tmp之后,son对象会有什么变化呢? 在 C++ 中,赋值操作 ref = tmp; 会调用 Bas...
1. 系列函数 backtrace()系列函数有3个:backtrace,backtrace_symbols,backtrace_symbols_fd。主要用于应用程序反调试(self-debugging)。 参见man 3 BACKTRACE,3个函数原型: #include <execinfo.h> int backtrace(void **buffer, int s...
1. 关于std::bind std::bind是函数模板(是一个函数)。 使用std::bind可以将可调用对象和参数一起绑定,绑定后的结果使用std::function进行保存,并在我们需要的任何时候调用。 std::bind返回一个基于f的函数对象,其参数被绑定到args上。f的参数要么被绑定到值,要么被绑定到placeholders(占位符,如_1, _2, …, _n)。即,...
ssize_t readlink(const char *path, char *buf, size_t bufsiz); /proc/self/exe是一个符号链接,代表当前程序的绝对路径 用readlink读取/proc/self/exe可以获取当前程序的绝对路径 int GetexeFilePath() { char szFilePath [255]; memset(szFil...