Compiler for Dynamic Peer-to-Peer Networked Code Execution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing technologies face limitations in parallelizing computer code for execution on dynamic peer-to-peer networks, requiring static resource allocation and fixed communication links, which restricts scalability and flexibility in distributed computing across the internet.
Innovation Solution
A compiler with automatic parallelization and code generation capabilities that supports parallel execution, communication, and data management in a dynamically changing peer-to-peer network, enabling dynamic network formation and resource allocation in response to computational needs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If static resource allocation and fixed communication links are used, then code execution is simplified, but scalability and flexibility in distributed computing across the internet are restricted
Solution Approach 1:
The system enables computing nodes to automatically discover peers, form network connections, and allocate resources without manual configuration. The compiler generates code that includes automatic peer discovery mechanisms and dynamic network formation logic, allowing the distributed system to self-organize and adapt to changing conditions across the internet.
Solution Approach 2:
The patent implements dynamic resource allocation and dynamic network topology where computing nodes can join and leave the network during execution. The compiler generates code that dynamically establishes communication links between peers based on runtime conditions, enabling the system to adapt its structure and resource distribution according to computational needs and network availability.
2Productivity
If manual programming is used to prepare programs for distributed computing, then control over code execution is precise, but programming effort and time consumption increase significantly
Solution Approach 1:
The compiler performs automatic parallelization and generates the necessary communication and coordination code during the compilation phase. This preliminary action includes automatically partitioning code for distributed execution, generating peer discovery logic, and inserting communication instructions between computing nodes, thereby eliminating the need for manual programming of these complex distributed computing aspects.
Solution Approach 2:
The patent replaces manual programming mechanics with automated compiler-based code generation. The compiler systematically transforms sequential code into parallel distributed code, automatically managing task distribution, data communication, and synchronization without requiring programmers to manually write these complex coordination routines.
3Productivity
If centralized server architecture is used, then resource management is simplified, but communication restrictions prevent efficient execution of distributed algorithms
Solution Approach 1:
The patent segments the centralized server architecture into a distributed peer-to-peer network where each computing node operates independently. The compiler generates code that partitions computational tasks across multiple autonomous peers, with each node managing its own execution context and communicating directly with other peers, thereby eliminating the communication bottlenecks and restrictions inherent in centralized architectures.
Solution Approach 2:
The system introduces peer discovery mechanisms and network coordination protocols as intermediaries that enable direct peer-to-peer communication. These intermediaries facilitate efficient distributed algorithm execution by managing peer identification, connection establishment, and data routing between computing nodes without requiring a centralized server, thus enabling algorithms like consensus protocols that require direct peer communication.
Data Source
AI summary
The present invention concerns a method and apparatus of supporting the compilation of an input computer program to create a collection of computer programs as its output, wherein the output computer programs working with the supporting apparatus are capable of creating self-organizing and dynamically changing peer-to-peer networks of computing devices during execution of the output computer programs, and performing distributed computations and data processing on such formed networks so as to accomplish the tasks described in the input computer program.


