项目代码越来越多,使用erlang编译也越来越慢。无论是Makefile还是Emakefile都力不从心。使用rebar编译速度会加快,但对原有项目改动太大。
通过对make.erl(otp/lib/tools/src/make.erl)进行修改,提供一个支持多进程编译的mmake.erl。其接口和make.erl相似,只是第一个参数为并发编译数,具体看下代码吧,非常简单。
对于项目中有编译次序要求时,比如必须首先编译自定义behaviour模块,随后编译其它模块,可以通过将Emakefile中内容分成多个{mod, opts}来达到目的。mmake实现中,对于同一个{mod, opts}内的模块会并行编译,而所有的{mod,opts}是顺序编译的。通过这个规则,我们就可以自定义顺序编译和并行编译。
比如,我们的项目首先要编译 gen_mod.erl,随后是mod_battle.erl,mod_team.erl模块:
cat Emakefile
{"gen_mod.erl", [{i, "include}, {outdir, "ebin"}]}.
{["mod_battle.erl","mod_team.erl"], [{i, "include}, {outdir, "ebin"}]}.
代码地址:https://github.com/litaocheng/mmake
分享到:
相关推荐
并行编译工具是软件开发领域中的重要工具,它们通过利用多核处理器或者分布式计算资源,显著提升编译过程的速度,从而加速整个软件开发周期。并行编译不仅仅是简单地将单个编译任务分割为多个子任务,而是涉及到复杂...
### 自动并行编译新技术 #### 摘要与背景 随着计算机硬件技术的不断发展,特别是多核处理器和大规模并行计算环境的普及,并行编程成为提高计算效率的关键技术之一。自动并行编译技术作为实现现有串行程序向并行...
Icecream 是由 SUSE 创建的、基于 distcc 的并行编译工具。可在远程机器上执行构建和分发、并行编译。与 distcc 不同的是,Icecream 使用一个中央服务器动态的对编译作业进行调度。 标签:Icecream
针对目前单机编译环境中编译资源局限、编译作业执行时间过长等问题,通过对网格集群技术的研究,提出了一种基于集群技术的网格并行编译服务模型。该模型中首先对编译作业进行分解,并依据作业调度算法,把分解后的元...
6. 实际应用与挑战:虽然指令级并行编译技术能有效提升性能,但实际应用中仍面临诸多挑战,如编译器优化复杂度、安全性考虑、以及硬件资源限制。需要在保证安全性和性能之间找到平衡,同时考虑到硬件成本和功耗等...
- **并行编译**:编译过程中考虑程序的并行性,将其转化为可以在多核或众核处理器上并发执行的代码。 - **数据传输优化**:优化数据在处理器内部和外部存储之间的移动,以减少延迟和提高整体系统性能。 - **OpenACC*...
中科大并行编译技术是计算机科学领域中处理程序并行性的重要技术之一,它涉及分析和优化程序代码,以实现高效并行执行。并行编译不仅对提高计算性能至关重要,也是应对多核处理器时代并行计算需求的关键技术。 在...
综上所述,"tbb CPU 并行计算库,aarch64 6.5.0交叉编译移植"涉及到的是在Aarch64架构上,使用版本为6.5.0的TBB库进行交叉编译的过程,目的是为了在该平台上有效地利用多核CPU进行并行计算。整个过程涵盖了解析TBB的...
通过以上步骤,一个简单的Linux集群就能建立起来,且支持并行编译Vasp或其他需要高性能计算的应用程序。集群的管理和服务配置需要细心和专业知识,但一旦设置完毕,可以极大地提升计算效率和系统的可维护性。
DSM体系结构对并行编译系统的支持与挑战[汇编].pdf
本书比较全面、系统地介绍了编译程序构造的一般原理和基本实现方法,内容包括词法分析、语法分析、属性文法与语法制导翻译、语义分析与中间代码产生、符号表与运行时存储空间组织、优化与目标代码生成、并行编译技术...
整个安装流程分为几个主要步骤:准备环境、安装IFC编译器、安装Intel MKL库、安装MPICH2并行通信库、以及最终编译配置VASP源码。 #### 二、准备工作 首先,确保操作系统为OpenSUSE Linux 10.3 或 11.0 的 x86-64 ...
标题中的“一种改进的用于并行编译的自动MPI代码生成算法”明确指出本文的研究内容围绕并行编译技术领域中的MPI代码自动生成算法的改进。MPI(Message Passing Interface)是一种用于并行计算的消息传递编程接口标准...
3. **编译选项**:在编译过程中,需要指定正确的编译选项,例如使用MPI并行化、选择适当的数学库等。 4. **并行配置**:根据实际的硬件环境调整并行配置参数,比如设置进程数、线程数等。 #### 五、总结 SIESTA是...
6. **模块化设计**:大型项目可以采用模块化设计,使得每个模块可以独立编译,这有助于并行化编译过程,并且只编译改动的部分,减少了整体编译时间。 7. **依赖分析**:准确的依赖分析可以确保编译器只处理真正需要...
与原教材相比,本书将编译技术的最新发展,例如属性文法、面向对象语言的编译技术、并行编译技术、编译程序自动构造工具等内容系统地融合到教材中;在语言背景方面,以C,Pascal替代原教材中的FORTRAN和Algol;并在...
在Linux环境下使用MPI编译并行SuperLU静态链接库,主要涉及到以下几个关键知识点: 1. MPI简介: MPI(Message Passing Interface)是一个定义了并行计算通信的标准接口。它主要用于多处理器或多计算机的共享内存、...