Inter-Process Communication Pattern Compression for Parallel Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Analyzing performance in parallel and distributed computing environments, particularly with inter-process communication through the MPI standard, is complex due to the difficulty in generating, interpreting, and using temporal sequences of function calls.
Innovation Solution
A method and system that detect patterns and successions of communication function calls, generating a trace file to simplify the timeline by identifying call loops and compressing data using a modified Sequitur algorithm, allowing for a clearer graphical representation of communication patterns.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of information
If temporal sequences of function calls are generated to analyze inter-process communication performance, then complete communication data is captured, but the complexity of generating, interpreting, and using the timeline increases
Solution Approach 1:
The patent extracts and isolates repetitive communication patterns from the complete temporal sequence, separating the essential information (pattern structures and repetition counts) from the raw detailed timeline. This extraction process maintains complete communication data while presenting it in a simplified form that reduces interpretation complexity.
Solution Approach 2:
The patent merges multiple identical or similar communication calls into single pattern representations with aggregation metrics (such as repetition counts). By combining redundant information into unified pattern entities, the system reduces the overall complexity of the timeline while preserving the complete communication behavior through pattern repetition notation.
2Measurement precision
If detailed temporal sequences of all function calls are recorded, then accurate performance measurement is achieved, but the difficulty of interpreting and using the data increases
Solution Approach 1:
The patent creates simplified copies or representations of repetitive communication patterns rather than displaying every individual call. These pattern copies retain the essential measurement information (communication frequency, participants, timing characteristics) while presenting it in a condensed format that is easier to interpret and analyze.
3Ease of operation
If loops of communication function calls are detected and patterns are identified, then the graphical representation becomes lighter and clearer, but additional processing steps are required
Solution Approach 1:
The patent performs preliminary detection and classification of communication patterns before generating the final graphical representation. By identifying and tagging repetitive patterns in advance, the system prepares the data in a structured format that enables simpler, more efficient graph generation and interpretation, reducing the complexity of the overall processing pipeline.
Data Source
Figure 1~4
Figure 2
Figure 3
AI summary
The invention relates to a computer system and method for analyzing the performance of an application that makes communication function calls between several processes. It is particularly applicable to performance analysis and diagramming of inter-process communications in a computer application operating in a parallel and distributed computing environment. The method comprises a step for collecting information about the function calls, a single call or a sequence of at least two calls forming a pattern of 7 to 11, and a step for compressing the collected information.The compression step includes: - a detection step, from the collected information, of patterns 7 to 11 and of sequences of patterns 7 to 11, to form a grammar in which each pattern 7 to 11 and each sequence of patterns 7 to 11 are identified by a unique identifier, - a detection step, in the grammar, of the repetition of patterns 7 to 11 and of sequences of patterns 7 to 11, - a generation step of a compressed trace file in which the patterns 7 to 11 and the sequences of patterns 7 to 11 are stored, as well as their respective numbers of repetition 12 to 15.