中文

Classdesc 与 Graphcode:C++ 中科学编程的支持

数学软件 2008-10-22 v2 计算工程、金融与科学 分布式、并行与集群计算

摘要

面向对象编程语言如 Java 和 Objective-C 因其对象能够进行运行时反射查询(即对对象结构进行查询)而在实现基于智能体及其他对象仿真方面广受欢迎。这使得编写相对简单的序列化例程(将对象转换为可存储或通过网络传递的二进制表示)成为可能。然而 C++ 缺乏此功能,因为类型信息在编译时被丢弃。尽管如此,C++ 仍是性能原因或其诸如运算符重载等表达特性等因素使其成为首选开发环境。在科学编程中,模型代码的修改频繁进行,因为模型不断被细化,且研究不同的现象。然而传统上,诸如检查点、模型参数初始化例程和模型输出分析等设施依赖于底层模型保持静态,否则每次模型修改都需要 correspondingly 修改大量支持例程以适应新的数据结构。反射技术可消除仿真框架适应底层模型而无需程序员介入,从而减少修改模型的工作量。本文介绍了 {\em Classdesc} 系统,该系统将许多对象反射优势带入 C++;{\em ClassdescMP} 极大简化了基于 MPI 的并行程序编码;{\em Graphcode} 则是一个通用的数据并行编程环境。

关键词

引用

@article{arxiv.cs/0610120,
  title  = {Classdesc and Graphcode: support for scientific programming in C++},
  author = {Russell K. Standish and Duraid Madina},
  journal= {arXiv preprint arXiv:cs/0610120},
  year   = {2008}
}