Skip to content

Commit 506fc8d

Browse files
committed
optimize code
1 parent ea106c9 commit 506fc8d

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

paddle/fluid/operators/listen_and_serv_op.cc

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -93,19 +93,18 @@ void ListenAndServOp::RunSyncLoop(
9393
framework::Executor *executor, framework::ProgramDesc *program,
9494
framework::Scope *recv_scope,
9595
const std::vector<int> &prefetch_block_id_list) const {
96-
// FIXME(qiao) ParallelExecuteBlocks should only execute optimize blocks.
97-
// the prefetch blocks should not be executed. Currently we put prefetch
98-
// blocks
99-
// at the end of programs. This may be misused.
10096
size_t num_blocks = program->Size();
10197
PADDLE_ENFORCE_GE(num_blocks, 2,
10298
"server program should have at least 2 blocks");
10399

104-
std::vector<int> block_list;
105-
for (int blkid = 1; blkid < prefetch_block_id_list[0]; ++blkid) {
106-
block_list.push_back(blkid);
100+
std::vector<int> optimize_block_id_list;
101+
for (int blkid = 1; blkid < num_blocks; ++blkid) {
102+
if (std::find(prefetch_block_id_list.begin(), prefetch_block_id_list.end(),
103+
blkid) == prefetch_block_id_list.end()) {
104+
optimize_block_id_list.push_back(blkid);
105+
}
107106
}
108-
auto optimize_prepared = executor->Prepare(*program, block_list);
107+
auto optimize_prepared = executor->Prepare(*program, optimize_block_id_list);
109108
// Insert placeholder for block0 which holds current op itself.
110109
optimize_prepared.insert(
111110
optimize_prepared.begin(),
@@ -132,7 +131,10 @@ void ListenAndServOp::RunSyncLoop(
132131
std::vector<size_t> parallel_blkids;
133132
parallel_blkids.push_back(1);
134133
double ts = detail::GetTimestamp();
135-
for (int blkid = 2; blkid < prefetch_block_id_list[0]; ++blkid) {
134+
for (size_t i = 1; i < optimize_block_id_list.size(); ++i) {
135+
// skip the first optimize block because it is already in the
136+
// parallel_blkids.
137+
int blkid = optimize_block_id_list[i];
136138
if (program->Block(blkid).Parent() != last_parent_blkid) {
137139
ParallelExecuteBlocks(parallel_blkids, executor, optimize_prepared,
138140
program, recv_scope);

0 commit comments

Comments
 (0)