CSIM represents a balanced approach to the design of parallel software and hardware systems. It includes a general purpose graphical editor for capturing hierarchical block diagrams of hardware architecture topologies and software application flow-graphs. The behaviors of the interacting blocks are described in standard ANSI C with a few simple extensions.
Several libraries are available for common processing systems.
A parallel programming tool assists in analyzing and partitioning application flow-graphs, mapping and scheduling their constituent tasks onto hardware elements, and generating the respective parallel software programs. The CSIM simulator provides animation and interactive execution. Interactive post-processing tools support intuitive data visualizations and analysis. CSIM was especially developed for modeling and visualizing large complex systems. It emphasizes speed and memory efficiency, and has been successfully applied on projects containing hundreds of processors and thousands of application tasks.