1. A multi-threading processor, comprising: a first instruction fetch unit to receive a first thread and a second instruction fetch unit to receive a second thread; an execution unit to execute said first thread and said second thread; and a multi-thread scheduler coupled to said first instruction fetch unit, said second instruction fetch unit, and said execution unit, wherein said multi-thread scheduler is to determine whether the width of said execution unit.