You have a set of jobs J = [J_1..J_n]. Each job takes an arbitrary number of minutes, [m_1..m_n] to execute.
Let's say that the jobs can executre in parallel on nodes [N_1..N_k]. Assume we have a maximum wallclock time budget T, that is the maximum allowable elapsed time since the first job started executing. Write a function to give the minium number of nodes needed to executre these n jobs within time budget T.