摘要:
According to an embodiment, based on task border information, and first-type dependency relationship information containing N number of nodes corresponding to data accesses to one set of data, containing edges representing dependency relationship between the nodes, and having at least one node with an access reliability flag indicating reliability/unreliability of corresponding data access; task border edges, of edges extending over task borders, are identified that have an unreliable access node linked to at least one end, and presentation information containing unreliable access nodes is generated. According to dependency existence information input corresponding to the set of data, conversion information indicating absence of data access to the unreliable access nodes is output. According to the conversion information, the first-type dependency relationship information is converted into second-type dependency relationship information containing M number of nodes (0≦M≦N) corresponding to data accesses to the set of data and containing edges representing inter-node dependency relationship.
摘要:
It is to provide: a generation unit configured to generate one or more reference relationship pairs with reference certainty information of “uncertainty” as presentation information based on first reference relationship information showing whether it is “certain” for the reference data to refer the referenced data or it is “uncertain” for the reference data to refer the referenced data, every reference relationship pair formed with reference data and referenced data; and a conversion unit configured to convert the first reference relationship information into second reference relationship information using an input of a reference relationship for presentation information and reference dependence relationship information showing a dependence relationship between reference relationship pairs.
摘要:
According to an embodiment, based on task border information, and first-type dependency relationship information containing N number of nodes corresponding to data accesses to one set of data, containing edges representing dependency relationship between the nodes, and having at least one node with an access reliability flag indicating reliability/unreliability of corresponding data access; task border edges, of edges extending over task borders, are identified that have an unreliable access node linked to at least one end, and presentation information containing unreliable access nodes is generated. According to dependency existence information input corresponding to the set of data, conversion information indicating absence of data access to the unreliable access nodes is output. According to the conversion information, the first-type dependency relationship information is converted into second-type dependency relationship information containing M number of nodes (0≦M≦N) corresponding to data accesses to the set of data and containing edges representing inter-node dependency relationship.
摘要:
According to one embodiment, a program converting device includes an access attribute determining unit, a non-sharing target classifying unit, and a converting unit. The access attribute determining unit calculates exclusive accesses from memory accesses by threads forming a source program and determines a memory access using a cache memory among the calculated exclusive accesses. The non-sharing target classifying unit determines an access data item that does not share a cache line with another access data item among the access data items that are accessed using the cache memories. The converting unit inserts a process that does not share the cache line into the source program based on the determination result of the non-sharing target classifying unit.
摘要:
According to one embodiment, a program converting device includes an access attribute determining unit, a non-sharing target classifying unit, and a converting unit. The access attribute determining unit calculates exclusive accesses from memory accesses by threads forming a source program and determines a memory access using a cache memory among the calculated exclusive accesses. The non-sharing target classifying unit determines an access data item that does not share a cache line with another access data item among the access data items that are accessed using the cache memories. The converting unit inserts a process that does not share the cache line into the source program based on the determination result of the non-sharing target classifying unit.
摘要:
According to one embodiment, as to a first program code including a plurality of variables, an access pattern of each variable by a processor is decided. The first program code is converted to a second program code including a plurality of threads. Each thread is executed by one of a plurality of cores of the processor. The second program code includes, (a) a first member structure including variables decided as a first access pattern, (b) a first route-pointer indicating the first member structure, the first route-pointer having a first access property representing accessibility by a core to execute a first thread, (c) a second member structure including variables decided as a second access pattern, (d) a second route-pointer indicating the second member structure, the second route-pointer having a second access property representing accessibility by the core to execute the first thread and a core to execute a second thread.
摘要:
According to one embodiment, a parallelizing unit divides a loop into first and second processes based on a program to be converted and division information. The first and second processes respectively have termination control information, loop control information, and change information. The parallelizing unit inserts into the first process a determination process determining whether the second process is terminated at execution of an (n−1)th iteration of the second process when the second process is subsequent to the first process or determining whether the second process is terminated at execution of an nth iteration of the second process when the second process precedes the first process. The parallelizing unit inserts into the second process a control process controlling execution of the second process based on the result of determination notified by the determination process.
摘要:
According to one embodiment, a first program code including a plurality of variables is converted to a second program code to be executed by a multi-core processor including a plurality of cores. Specifically, an access pattern of each variable in the first program code is decided. All variables in the first program code are classified into a plurality of groups each of which variables belong to the same access pattern. A member structure of each group having variables belonging to the same access pattern is created. Each member structure includes variables of one group. A route-pointer indicating an address (in a memory) of variables of the member structure is created. The variables in the first program code are converted to the member structure and the route-pointer (in the second program code) that indicate the variables. The second program code is outputted to the multi-core processor.