다음과 같은 그래프 문제가 있으며 실행 시간 성능을 최적화해야합니다. 나는 단지 프로그래밍 기술 을 찾고 알고리즘 최적화가 아닌을 사용하여 성능을 향상시키고 자합니다. 문제는 다음과 같다 : 그래프 G (V, E)가 주어지면, 각 노드 u는 u의 모든 2 홉 이웃이 이웃이되도록 다중 집합 릴레이 (M_r (u))라고 불리는 이웃 N M_r (u)의 적어도 하나의 노드에 전달한다. 노드 u에서의 M_r (u)의 구성은 다음과 같다.분산 그래프 알고리즘의 성능을 가속화하는 방법은 무엇입니까?
construct_mr(u)
1) M_r(u) is initially empty.
1') The set of non-covered 2-hop of neighbors of u is the set of all 2-hop neighbors of u.
// a covered 2-hop neighbor of u: is a 2-hop neighbor of u that is also a neighbor to at least one of the nodes of M_r(u).
2) while (M _r(u) is not a multiset relay set)
2a) update the set of non-covered 2-hop neighbors of u.
2b) add to M_r(u) a neighbor v that cover the most non-covered 2-hop neighbors of u.
자, 내가 한 것은 다음이었다
for each node u \in V: construct_mr(u).
가 직렬화 구현 및 그래프가 크고 밀도가 끔찍한 실행 시간이 본원 문제. Java 또는 C++를 사용하여 이러한 알고리즘의 성능을 가속화하는 방법을 찾고 있습니다. 하지만 멀티 스레딩에 대해서는 좋은 성능을 얻기 위해 스레드 스케줄링을 사용해야합니까? [메시지 전달 프로그래밍 모델은 아무런 메시지도 전달하지 않으므로 아무런 효과가 없습니다.]
스레드/프로세스 우선 순위로 재생해도 마술처럼 집중적 인 프로그램을 더 빨리 수행 할 수는 없습니다. 일반적으로 대기 시간 문제로 인해 스레드의 우선 순위가 높아집니다 (예 : 일정에 맞춰 일정을 처리해야하는 경우). –
모든 계산이 독립적이라는 것을 확인할 수 있습니까? I.E. 그들은 독서를위한 자원 만 공유합니까? J.N에서 –
: 리소스는 공유되지만 변경 사항은 없습니다. – AJed