How to work with teammates who shoot down ideas in order to avoid work? I am working with two fellow graduate students on implementing some algorithm for data extraction. We are in the mid-phase of our project and we still have roughly a month (20 days to be precise) to go before it is due. 

However, recently I have been confronted with a pattern of negative, and frankly quite arrogant behavior. 

Whenever I suggest something that can help out with the project, they will quickly shoot down the idea. It has became more and more apparent that they do this in order to avoid having to work on, or research the idea. 

For example, our algorithm is very slow on a standard CPU, I told them that the algorithm may run hundreds of time faster on a GPU. Obviously we do not have a GPU, so the team will need to contact people to find an efficient GPU, which is something that is available in our school, and also figure out how to run the algorithm on it. 

The idea was immediately shot down, at first they told me it was impossible to get speed up (this was at the very early stage of the project and they were not familiar with how a GPU works). Eventually, they realized not only you can get speedup, but also a significant amount. When I made the request again, they told me that it is probably not going to worth it. How can they know if we have not tried?

This came up again just today. I told them that the data extraction model is not very efficiently stored, that is, the data structure storing the model does not have a very desirable insertion and retrieval time. The way of resolving this issue in my opinion is by finding a new data structure. They immediately shot down the idea and said to me that no such thing existed. I looked online and found a blog that, in a very detailed manner, lists more than 5 ways of improving on our method of storing the model. Fine, then I asked them how would they solve the issue. They told me just to deal with it until the end of the project - out of sight, out of mind. I am afraid that when we run our algorithm on the real data set (which is 100x larger than the experimental one we are currently working with), we will again run into this storage issue and we would be out of time then, at which time they will probably say something like, "who knew, too bad!".

At this stage I am beginning to wonder if we can efficiently work together. I get the feeling that they are basically telling me: 

go at it alone, if you succeed, then we will free-load on the overall success of the project without having wasted our precious time, and if you fail, then you should have listened to us.

Where should I go from here?
Are you sure you are not prematurely optimizing?

You have stated that your algorithm is "very slow" and your data model is "not very efficient".  However, it is not clear that these inefficiencies will actually prevent you from delivering the main goals of your project.  You have a worry that you will not be able to scale to the necessary data size, which is a legitimate worry, but not proven at this stage.  It may turn out to be no problem.

Your colleagues' excuse-making--incorrectly claiming that solutions won't work or don't exist--is certainly unhelpful.  Nevertheless, they may be correct that these ideas are not worth pursuing.  Working on performance improvements that are not necessary to deliver the project may be a distraction from meeting the important goals.

Step one: determine for sure whether optimization is critical to the project.

Your worry about scaling to the full dataset is legitimate and important. What you should do about that worry is test on a full size dataset, as soon as possible.  If you don't have access to the real dataset yet, then make your own test data, by copying the experimental data 100 times, randomly generating data, or whatever works.

Also consider other ways that the performance may have an impact on meeting project goals, and test where it makes sense.

Step two: if appropriate, make a case for optimization on the basis of it helping deliver the project.

If you can show that improving performance is either necessary to meet your goals, or has a benefit that outweighs the cost, then make this argument.  Back up your argument with evidence (like test results).

Start with your colleagues, and if they are not convinced than discuss it with your supervisor.

However, only do this if truly necessary--and one month from your end date, you should probably only be worrying about things that are absolutely critical to completing the project.