Skip to content

Instantly share code, notes, and snippets.

@Tobias-Fischer
Created March 2, 2022 05:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Tobias-Fischer/44bb5ab95bce9318dcfcd9588c8f8a6c to your computer and use it in GitHub Desktop.
Save Tobias-Fischer/44bb5ab95bce9318dcfcd9588c8f8a6c to your computer and use it in GitHub Desktop.
#!/usr/bin/env python
import subprocess
import pandas as pd
import re
result = subprocess.run(["pbsnodeinfo"], capture_output=True, text=True)
text_file = result.stdout
lines = text_file.split('\n')
GPUtype=[]
GPUusage=[]
max_avail=[]
cur_avail=[]
used=[]
for i in range(1,len(lines)):
s=lines[i]
it=re.split(';|:|\|',s)
if len(it)<6:
continue
GPUtype.append(it[5])
GPUusage.append(it[6])
values=re.split(' ',it[6])
max_avail.append(int(values[3]))
used.append(int(values[1]))
cur_avail.append(int(values[3])-int(values[1]))
uniqueGPUs = list(set(GPUtype))
df2= (zip(GPUtype,used,cur_avail,max_avail))
df = pd.DataFrame (df2,columns=['GPU Type','Used','Available','Max'])
print(df)
summary=[]
for itm in range(len(uniqueGPUs)):
slc=df['GPU Type'].str.contains(uniqueGPUs[itm], regex=False)
itms=df[slc]
sum_used=itms['Used'].sum(axis=0)
sum_max=itms['Max'].sum(axis=0)
summary.append([uniqueGPUs[itm],sum_used,sum_max-sum_used,sum_max])
summary_df = pd.DataFrame (summary,columns=['GPU Type','Used','Available','Max'])
#GPUtype
print("summary")
print(summary_df)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment