우리는 비슷한 이미지 클러스터를 찾기 위해 scikit-learn을 사용하고있다. 우리는 내부 API를 가지고 싶지만 scikit에서 객체를 가져 오거나 사용하면 매우 많은 수의 컨텍스트 전환이 발생합니다. 그 수입의scikit-learn에서 무언가를 가져올 때 나는 문맥 전환의 미친 양을 가지고있다.
어느 그들 중 많은 만드는 :
여기from sklearn.neighbors import NearestNeighbors
from sklearn.externals.joblib import load
from sklearn.decomposition import PCA
from sklearn.externals import joblib
우리 프로그램의 다시 시작하는 동안 vmstat 1
출력됩니다.
그러나 우리가 3GB NearestNeighbors 개체의 수치를 계산할 때 컨텍스트 스위치가 크게 증가한 것을 볼 수 있습니다.
당신은 확실히 우리가 우리의 API에 보내 3 개 쿼리를 발견 할 수 있습니다. 여기
은 증가의 supects 있습니다 : 우리는 고정 표시기와 유목민에 그것을 실행할 때 우리는 고정 표시기와의 설정은 우리의 노트북에 구성 실행 때def reduce_dimensions(self, dataset):
return self.dim_obj.transform(dataset)
def get_closest_cluster(self, input_data):
indexs_with_distance = self.cluster_obj.radius_neighbors(X=input_data, radius=self.radious, return_distance=True)
return self.get_ordered_indexs(indexs_with_distance)
이 발생합니다. 웹 응용 프로그램은 플라스크로 작성되었으며 gunicorn과 함께 제공됩니다.
scikit에게 이러한 컨텍스트 스위치가 더 많은 도움이 될 수있는 방법이 있습니까?
관리자는 동일한 노드에 배포 된 모든 응용 프로그램의 성능이 저하 될 것을 우려합니다.
프로세스를 실행하여 사용할 수있는 스레드의 수를 제한하기 위해 우리는 파이썬 3.6 사용하고 0.19.1
도움, 감사합니다. –